[Ajuda] Tag VIP no nome + programar erro! Socorro.
#1

Olб pessoal! Eu estou editando minha GM, e estou tentando adicionar um fs (filterscript) que eu mesmo estou criando do zero, й bem bбsico, mas pra mim que nгo sei programar, montei apenas comparando com outro FS que jб vi por dentro, e aos poucos entre erros e acertos estou conseguindo criar certinho, apresenta um grande nнvel de dificuldade.

*Estou com um pouquinho de pressa, pois minha HOST jб foi paga e estб apenas aguardando a aprovaзгo do pagamento, acredito que seja hoje ( sгo 03:08 da manhг agora ) mais a tarde, lб para as 9 ou 10h da manhг. Caso possam me ajudar antes disso, fico grato! Pelo contrбrio, fico grato tambйm, rs.

O FS em si se resume em colocar uma tag VIP e outra Administrador em cima da cabeзa do player, em cima do nome, usando variбveis if, chatbubble e attach3d. A Tag dos administradores eu jб consegui colocar, e funcionou pois jб testei, jб a dos VIPs eu nгo consegui, acho que sei mais ou menos qual й o meu problema, mas nгo sei bem onde ele estб! Muito menos resolve-lo.

Й o seguinte: A minha GM conta com um sistema de VIP que pode ser setado atravйs de comando in game (/darvip [player id] ) e o mesmo pode ser retirado ali. Jб vasculhei a minha gm internamente, e vi todos os comandos e inclusive a programaзгo utilizada para que ele exista, todos os seus benefнcios sгo a partir de comandos programados dentro da ''GM''.pwn , mas o que notei de diferente, й que ele nгo possui nenhuma pasta ou arquivo em qualquer parte da pasta do meu server como um todo, jб procurei nas scriptfiles e nгo achei nada, acredito que esse seja o meu problema baseado no erro que aparece no meu compilador.

A seguir vou deixar os erros que aparecem ( somente 1 ) o resto, sгo apenas avisos que eu acredito serem bobos.


Arquivo em .pwn (TagAdmin.pwn) que estou criando.

PHP код:
#define FILTERSCRIPT
#include <a_samp>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
    print(
"\n--------------------------------------");
    print(
" TagAdmin Filterscript by ZeppetoCNL");
    print(
"--------------------------------------\n");
    return 
1;
}
public 
OnFilterScriptExit()
{
    return 
1;
}
new 
Text3D:Admin[MAX_PLAYERS];
new 
Text3D:Vip[MAX_PLAYERS];
public 
OnPlayerUpdate(playerid)
{
if(
IsPlayerAdmin(playerid))
    {
            
SetPlayerChatBubble(playerid"»Administrador"0x0000FFFF, -1100.010000);
}
if(
IsPlayerVip(playerid))
           
Vip[playerid] = Create3DTextLabel("V.I.P"0x0000FFFF20.020.020.020.00);
Attach3DTextLabelToPlayer(Vip[playerid], playerid0.00.00.4);
    
    return 
1;
  }
#endif 
O problema se encontra a partir da trigйsima primeira linha, em '' if(IsPlayerVip(playerid)) ''
Acredito que como nгo hб em minha pasta de server, nenhum arquivo ou pasta ( nem mesmo .txt ) com o nome de todos os players vip's, o pawno nгo consegue reconhecer um local que indique quem sгo os vips. Os mesmos aparecem somente em '' C:/scriptfiles/Contas/UsuбrioX.txt/ Na linha que se encontra '' VIP = '' 0 para nгo, e 1 para sim. Acredito que sу a partir daн, o pawno nгo consegue achar os players VIP's e sem isso, nгo hб jeito, pois se nгo, todos os players ( atй os comuns ) teriam a Tag VIP no nome. Posso estar errado, й apenas uma suposiзгo. Se eu estiver certo, o problema todo й que nгo faзo a mнnima ideia de como resolver isso.

~ Abaixo segue o erro que aparece no meu pawno compiler:

PHP код:
C:\Users\Alves\Desktop\TagAdmin.pwn(29) : warning 213tag mismatch
C
:\Users\Alves\Desktop\TagAdmin.pwn(29) : warning 202number of arguments does not match definition
C
:\Users\Alves\Desktop\TagAdmin.pwn(31) : error 017undefined symbol "IsPlayerVip"
C:\Users\Alves\Desktop\TagAdmin.pwn(37) : warning 217loose indentation
C
:\Users\Alves\Desktop\TagAdmin.pwn(43) : warning 203symbol is never used"Admin"
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase
1 Error

* Desculpem por como PHP, mas й que nгo sei como colocar como '' code Pawno ''.

Bom, como podem ver, ele diz: ''TagAdmin.pwn(31) : error 017: undefined symbol "IsPlayerVip"''
Eu estou usando a mesma forma que usei para o admin que deu certo, mas para os vips nгo dб. jб tentei criar uma nova variбvel com o nome de IsPlayerVip, e ficou assim: new IsPlayerVip; e tambйm tentei: new IsPlayerVip[MAX_PLAYERS]; mas nгo deu.
Na verdade nгo parece nem fazer muito sentido, mas como sou leigo, foi apenas uma tentativa desesperada de fazer funcionar. Se alguйm puder me ajudar, eu ficaria muito grato.

*PS> Eu tambйm pensei que isso pode estar ocorrendo devido ao fato de que players que sгo admins e ao mesmo tempo sгo Vips podem gerar um conflito, ou entгo simplesmente bugar os escritos e um ficar por cima do outro. Nгo sei se pode ser isso, acho atй que nгo, mas gostaria de saber tambйm, o que aconteceria se um Player fosse Admin e Vip ao mesmo tempo (meu caso como dono) e o que eu deveria fazer para concertar isso!

Muito obrigado, desculpem pelo tуpico gigante, mas й que tentei explicar tudo o mбximo possнvel para que nгo haja dъvidas de como as coisas estгo aqui gerando assim uma ajuda da parte de vocкs mais eficiente

O meu server vai ao ar amanhг, com o nome de [BVV] Brasil Viva la Vida ~ RPG [BVV] na versгo 0.3z !
Caso precisem de um contato melhor, e se estiverem dispostos ... Meu skype й: endom_lyrics
Reply
#2

Um cуdigo tгo simples pra que o FS nem pra organizaзгo serve amigo,
warning й a msm coisa que erro nгo vai funcionar
para nгo ficar um em cima do outro й sу editar a altura.

pawn Код:
new Text3D:label = Create3DTextLabel("TEXTO", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7); // a Altura assim  nгo ficara um em cima do outro
Linha mal indentada, se nгo sabe indentador utilize este indentador
pawn Код:
C:\Users\Alves\Desktop\TagAdmin.pwn(37) : warning 217: loose indentation
utilizou de maneira errado o ChatBubble
pawn Код:
C:\Users\Alves\Desktop\TagAdmin.pwn(29) : warning 213: tag mismatch
C:\Users\Alves\Desktop\TagAdmin.pwn(29) : warning 202: number of arguments does not match definition
Correto
pawn Код:
SetPlayerChatBubble(playerid, "»Administrador", 0x0000FFFF,  100.0, 10000);
Nгo esta definido IsPlayerVip pois esta em seu GM e nгo no FS que nem й preciso fazer cуdigo muito simples
pawn Код:
C:\Users\Alves\Desktop\TagAdmin.pwn(31) : error 017: undefined symbol "IsPlayerVip"
Vocк criou a Variбvel Admin e nгo utilizou
pawn Код:
C:\Users\Alves\Desktop\TagAdmin.pwn(43) : warning 203: symbol is never used: "Admin"
pawn Код:
public OnPlayerUpdate(playerid)
{

    if(IsPlayerAdmin(playerid))
    {
       
        Admin[playerid] = Create3DTextLabel("Administrador", 0x0000FFFF, 20.0, 20.0, 20.0, 20.0, 0);
        Attach3DTextLabelToPlayer(Admin[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(IsPlayerVip(playerid))
    {
       
        Vip[playerid] = Create3DTextLabel("V.I.P", 0x0000FFFF, 20.0, 20.0, 20.0, 20.0, 0);
        Attach3DTextLabelToPlayer(Vip[playerid], playerid, 0.0, 0.0, 0.4);

    }
    return 1;
}
Reply
#3

pawn Код:
public OnPlayerUpdate(playerid)
{

    if(IsPlayerAdmin(playerid))
    {
       
        Admin[playerid] = Create3DTextLabel("Administrador", 0x0000FFFF, 20.0, 20.0, 20.0, 20.0, 0);
        Attach3DTextLabelToPlayer(Admin[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(IsPlayerVip(playerid))
    {
       
        Vip[playerid] = Create3DTextLabel("V.I.P", 0x0000FFFF, 20.0, 20.0, 20.0, 20.0, 0);
        Attach3DTextLabelToPlayer(Vip[playerid], playerid, 0.0, 0.0, 0.4);

    }
    return 1;
}
Na boa, esse codigo ai vai dar boa nгo... Vai criar um monte de label uma em cima da outra.
Reply
#4

Quote:
Originally Posted by Nickvj7
Посмотреть сообщение
pawn Код:
public OnPlayerUpdate(playerid)
{

    if(IsPlayerAdmin(playerid))
    {
       
        Admin[playerid] = Create3DTextLabel("Administrador", 0x0000FFFF, 20.0, 20.0, 20.0, 20.0, 0);
        Attach3DTextLabelToPlayer(Admin[playerid], playerid, 0.0, 0.0, 0.4);
    }
    if(IsPlayerVip(playerid))
    {
       
        Vip[playerid] = Create3DTextLabel("V.I.P", 0x0000FFFF, 20.0, 20.0, 20.0, 20.0, 0);
        Attach3DTextLabelToPlayer(Vip[playerid], playerid, 0.0, 0.0, 0.4);

    }
    return 1;
}
Na boa, esse codigo ai vai dar boa nгo... Vai criar um monte de label uma em cima da outra.
realmente nгo reparei a callback que o ele tinha colocado recomendo colocar em OnPlayerConnect ou spawn
Reply
#5

Quote:
Originally Posted by Whoo
Посмотреть сообщение
realmente nгo reparei a callback que o ele tinha colocado recomendo colocar em OnPlayerConnect ou spawn
Eu pensei em fazer algo em OnPlayerConnect, mas penso que, se eu colocar aн, eu terei que adicionar um tempo para que fique ativo.. Que comando eu deveria usar para colocar atй o player deslogar? Algo do tipo: OnPlayerDesconect? < Se й que existe rsrs > .
Reply
#6

Quote:
Originally Posted by Endom_Lyrics[BTG]Ajuda?
Посмотреть сообщение
Eu pensei em fazer algo em OnPlayerConnect, mas penso que, se eu colocar aн, eu terei que adicionar um tempo para que fique ativo.. Que comando eu deveria usar para colocar atй o player deslogar? Algo do tipo: OnPlayerDesconect? < Se й que existe rsrs > .
Acho que o certo seria '' OnPlayerExit '' e daн uma estrutura para sair nй.. sla.

Por exemplo>: OnPlayerConect A tag Admin aparece se o mesmo for admin, caso contrбrio nгo. O mesmo se ele for vip, e o comando dura atй o '' OnPlayerExit ''. Estou certo ?
Reply
#7

OnPlayerDisconnect existe
Reply
#8

Quote:
Originally Posted by CachorroDoDavyJones
Посмотреть сообщение
OnPlayerDisconnect existe
Poderia me dar uma ajuda de como ficaria o meu comando? Eu nгo faзo a mнnima ideia.. Seguindo o que eu tinha imagino instalei um sistema de reconhecimento vip com gerador de keys pra ativaзгo e tambйm expiraзгo automбtica, e nele vem a funзгo ' IsPlayerVIP(playerid) ' para checar se o jogador й VIP! Acredito que com isso eu possa estruturar a tag dos vips, mas sу igualmente como estб a dos admins nгo dб certo. Como deveria ficar o meu cуdigo? pode ajudar? ;s
Reply
#9

No momento meu code se encontra como:


public OnFilterScriptExit()
{
return 1;
}

new Text3D:Admin[MAX_PLAYERS];
new Text3D:Vip[MAX_PLAYERS];



public OnPlayerUpdate(playerid)
{

if(IsPlayerAdmin(playerid))
{
SetPlayerChatBubble(playerid, "»Administrador", 0x0000FFFF, -1, 100.0, 10000);
}

if(IsPlayerVIP(playerid))
{
SetPlayerChatBubble(playerid, "»V.I.P", 0x0000FFFF, -1, 100.0, 10000);

}


return 1;
}



#endif

Preciso de ajuda D: pls !
Reply
#10

Recomendo vocк da uma estuda em Variaveis


Pra que Isplayervip?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)