Beiträge von Derakar


    Wobei ich mich damit ja auch __Name__ nennen könnte was ja am Ziel vorbeischießt

    Hast du dann eine Bessere Idee?


    also bei mir werde ich die ganze Zeit gekickt mit oder ohne RP Name.



    new rpname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,rpname,sizeof(rpname));
    if(strfind(rpname,"_",false,1) == -1)
    {
    SendClientMessage(playerid, COLOR_YELLOW,"Du brauchst einen Roleplay-Namen! Beispiel: Max_Musterman");
    SetTimerEx("KickTimer",200,false,"i",playerid);

    Ich hab mir ein Geld system gebastelt und es funktioniert auch ganz. Jetzt sitze ich vor einem Problem da ich ja noch relativ neu in PAWN bin ist meine Frage
    Wie kann ich wenn ich ein Auto kaufe Geld von dem Spieler abziehen.


    Das Auslesen geht also ob er genug hat dann kauft er das Auto wenn nicht dann nicht.


    if(dialogid==Autohaus)
    {
    if(response)
    {
    //Autoverkauf
    new id=GetPVarInt(playerid,"buyCarID");
    if(sInfo[playerid][cash]<ahCars[id][c_preis])
    {
    SendClientMessage(playerid,COLOR_DRED,"Du hast nich genügend Geld.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    createPlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r]);
    SendClientMessage(playerid,COLOR_DGREEN,"Herzlichen Glückwunsch zum neuen auto");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_DRED,"Dann halt nicht...");
    }
    return 1;
    }

    Okay ok ich hab den scheiß fehler gefunden...


    es lag an einem return 1; im GeldTimer... habs jetzt aber auch mit PlayerTextDraw.


    Danke trozdem für die Hilfe! :D


    EDIT:
    Doch nicht... ich weiß nicht mehr was ich gemacht X(

    Wenn ich das so mache bekomme ich Warnings... :/



    Geldlabel[playerid] = TextDrawCreate(496.000000,79.000000,"Geld");
    TextDrawBackgroundColor(Geldlabel[playerid], -1);
    TextDrawFont(Geldlabel[playerid], 3);
    TextDrawLetterSize(Geldlabel[playerid], 0.500000, 2.100000);
    TextDrawColor(Geldlabel[playerid], -1);
    TextDrawSetOutline(Geldlabel[playerid], 0);
    TextDrawSetProportional(Geldlabel[playerid], 1);
    TextDrawSetShadow(Geldlabel[playerid], 0);
    TextDrawUseBox(Geldlabel[playerid], 1);
    TextDrawBoxColor(Geldlabel[playerid], 255);
    TextDrawTextSize(Geldlabel[playerid], 640.000000, 0.000000);




    Compiler:



    C:\Users\Sven\Desktop\script.pwn(397) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(398) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(399) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(400) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(401) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(402) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(403) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(404) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(405) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(406) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(407) : warning 213: tag mismatch
    C:\Users\Sven\Desktop\script.pwn(1451) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    12 Warnings.

    Also ich habe via MySQL ein Geldsystem geschrieben mit Textdraws. Dazu habe ich einen /setcash Befehl gemacht. So zu dem Zeitpunkt ist mein Problem, dass ich mir Geld setzen kann aber bei einem anderen geht das nicht.

    Verwendung: Textdraw[playerid]

    Wo muss das jetzt hin? Muss das mit da hin?
    Geldlabel[playerid] = TextDrawCreate(496.000000, 79.000000, "Geld");
    Ich hab das jetzt so gemacht



    new Text:Geldlabel[MAX_PLAYERS];
    new Text:BoxG1[MAX_PLAYERS];
    new Text:BoxG2[MAX_PLAYERS];
    new Text:BoxG3[MAX_PLAYERS];
    new Text:BoxG4[MAX_PLAYERS];


    EDIT:
    Also ich hab jetzt das mit PlayerTestDraw gemacht aber jetzt updatet der Timer nicht.
    hier das was ich Verändert habe:



    //Geld
    new PlayerText:Geldlabel[MAX_PLAYERS];
    new PlayerText:BoxG1[MAX_PLAYERS];
    new PlayerText:BoxG2[MAX_PLAYERS];
    new PlayerText:BoxG3[MAX_PLAYERS];
    new PlayerText:BoxG4[MAX_PLAYERS];



    //OnGameModeInit
    SetTimer("GeldTimer",1000,1);




    //__________________________ TextDraw Geld __________________________
    Geldlabel[playerid] = CreatePlayerTextDraw(playerid,496.000000,79.000000,"Geld");
    PlayerTextDrawBackgroundColor(playerid,Geldlabel[playerid],-1);
    PlayerTextDrawFont(playerid,Geldlabel[playerid],2);
    PlayerTextDrawLetterSize(playerid,Geldlabel[playerid],0.500000,2.100000);
    PlayerTextDrawColor(playerid,Geldlabel[playerid], -1);
    PlayerTextDrawSetOutline(playerid,Geldlabel[playerid],0);
    PlayerTextDrawSetProportional(playerid,Geldlabel[playerid],1);
    PlayerTextDrawSetShadow(playerid,Geldlabel[playerid],0);
    PlayerTextDrawUseBox(playerid,Geldlabel[playerid],1);
    PlayerTextDrawBoxColor(playerid,Geldlabel[playerid],255);
    PlayerTextDrawTextSize(playerid,Geldlabel[playerid],640.000000,0.000000);


    BoxG1[playerid] = CreatePlayerTextDraw(playerid,496.000000, 77.000000," ");
    PlayerTextDrawBackgroundColor(playerid,BoxG1[playerid], 255);
    PlayerTextDrawFont(playerid,BoxG1[playerid], 1);
    PlayerTextDrawLetterSize(playerid,BoxG1[playerid], 0.500000, -0.300000);
    PlayerTextDrawColor(playerid,BoxG1[playerid], -1);
    PlayerTextDrawSetOutline(playerid,BoxG1[playerid], 0);
    PlayerTextDrawSetProportional(playerid,BoxG1[playerid], 1);
    PlayerTextDrawSetShadow(playerid,BoxG1[playerid], 1);
    PlayerTextDrawUseBox(playerid,BoxG1[playerid], 1);
    PlayerTextDrawBoxColor(playerid,BoxG1[playerid], -1);
    PlayerTextDrawTextSize(playerid,BoxG1[playerid], 638.000000, 0.000000);


    BoxG2[playerid] = CreatePlayerTextDraw(playerid,496.000000, 77.000000, "L");
    PlayerTextDrawBackgroundColor(playerid,BoxG2[playerid], 255);
    PlayerTextDrawFont(playerid,BoxG2[playerid], 1);
    PlayerTextDrawLetterSize(playerid,BoxG2[playerid], 0.000000, 2.599999);
    PlayerTextDrawColor(playerid,BoxG2[playerid], -1);
    PlayerTextDrawSetOutline(playerid,BoxG2[playerid], 0);
    PlayerTextDrawSetProportional(playerid,BoxG2[playerid], 1);
    PlayerTextDrawSetShadow(playerid,BoxG2[playerid], 1);
    PlayerTextDrawUseBox(playerid,BoxG2[playerid], 1);
    PlayerTextDrawBoxColor(playerid,BoxG2[playerid], -1);
    PlayerTextDrawTextSize(playerid,BoxG2[playerid], 491.0, 0.0);


    BoxG3[playerid] = CreatePlayerTextDraw(playerid,494.0, 101.0, " ");
    PlayerTextDrawBackgroundColor(playerid,BoxG3[playerid], 255);
    PlayerTextDrawFont(playerid,BoxG3[playerid], 1);
    PlayerTextDrawLetterSize(playerid,BoxG3[playerid], 0.5, -0.3);
    PlayerTextDrawColor(playerid,BoxG3[playerid], -1);
    PlayerTextDrawSetOutline(playerid,BoxG3[playerid], 0);
    PlayerTextDrawSetProportional(playerid,BoxG3[playerid], 1);
    PlayerTextDrawSetShadow(playerid,BoxG3[playerid], 1);
    PlayerTextDrawUseBox(playerid,BoxG3[playerid], 1);
    PlayerTextDrawBoxColor(playerid,BoxG3[playerid], -1);
    PlayerTextDrawTextSize(playerid,BoxG3[playerid], 638.0, 0.0);


    BoxG4[playerid] = CreatePlayerTextDraw(playerid,646.0, 77.0, "L");
    PlayerTextDrawBackgroundColor(playerid,BoxG4[playerid], 255);
    PlayerTextDrawFont(playerid,BoxG4[playerid], 1);
    PlayerTextDrawLetterSize(playerid,BoxG4[playerid], 0.0, 2.599999);
    PlayerTextDrawColor(playerid,BoxG4[playerid], -1);
    PlayerTextDrawSetOutline(playerid,BoxG4[playerid], 0);
    PlayerTextDrawSetProportional(playerid,BoxG4[playerid], 1);
    PlayerTextDrawSetShadow(playerid,BoxG4[playerid], 1);
    PlayerTextDrawUseBox(playerid,BoxG4[playerid], 1);
    PlayerTextDrawBoxColor(playerid,BoxG4[playerid], -1);
    PlayerTextDrawTextSize(playerid,BoxG4[playerid], 636.0, 0.0);



    PlayerTextDrawHide(playerid, Geldlabel[playerid]);
    PlayerTextDrawHide(playerid, BoxG1[playerid]);
    PlayerTextDrawHide(playerid, BoxG2[playerid]);
    PlayerTextDrawHide(playerid, BoxG3[playerid]);
    PlayerTextDrawHide(playerid, BoxG4[playerid]);




    //Geld
    PlayerTextDrawShow(playerid, Geldlabel[playerid]);
    PlayerTextDrawShow(playerid, BoxG1[playerid]);
    PlayerTextDrawShow(playerid, BoxG2[playerid]);
    PlayerTextDrawShow(playerid, BoxG3[playerid]);
    PlayerTextDrawShow(playerid, BoxG4[playerid]);
    GeldTimer(playerid);




    public GeldTimer(playerid)
    {
    new string[124];
    new vgeld[MAX_PLAYERS];
    vgeld[playerid] = sInfo[playerid][cash];
    format(string, sizeof(string), "%d ~g~EUR", vgeld[playerid]);
    PlayerTextDrawSetString(playerid,Geldlabel[playerid],string);
    }

    Heißst? Das muss für jeden einzelnen angezeigt werden? Und wie?


    EDIT:
    bzw. wo?


    EDIT2:
    Das ist Das Textdraw unter OnGameModeInit


    //__________________________ TextDraw Geld __________________________
    Geldlabel = TextDrawCreate(496.000000, 79.000000, "Geld");
    TextDrawBackgroundColor(Geldlabel, -1);
    TextDrawFont(Geldlabel, 2);
    TextDrawLetterSize(Geldlabel, 0.500000, 2.100000);
    TextDrawColor(Geldlabel, -1);
    TextDrawSetOutline(Geldlabel, 0);
    TextDrawSetProportional(Geldlabel, 1);
    TextDrawSetShadow(Geldlabel, 0);
    TextDrawUseBox(Geldlabel, 1);
    TextDrawBoxColor(Geldlabel, 255);
    TextDrawTextSize(Geldlabel, 640.000000, 0.000000);
    SetTimer("GeldTimer",1000,1);


    BoxG1 = TextDrawCreate(496.000000, 77.000000, " ");
    TextDrawBackgroundColor(BoxG1, 255);
    TextDrawFont(BoxG1, 1);
    TextDrawLetterSize(BoxG1, 0.500000, -0.300000);
    TextDrawColor(BoxG1, -1);
    TextDrawSetOutline(BoxG1, 0);
    TextDrawSetProportional(BoxG1, 1);
    TextDrawSetShadow(BoxG1, 1);
    TextDrawUseBox(BoxG1, 1);
    TextDrawBoxColor(BoxG1, -1);
    TextDrawTextSize(BoxG1, 638.000000, 0.000000);


    BoxG2 = TextDrawCreate(496.000000, 77.000000, "L");
    TextDrawBackgroundColor(BoxG2, 255);
    TextDrawFont(BoxG2, 1);
    TextDrawLetterSize(BoxG2, 0.000000, 2.599999);
    TextDrawColor(BoxG2, -1);
    TextDrawSetOutline(BoxG2, 0);
    TextDrawSetProportional(BoxG2, 1);
    TextDrawSetShadow(BoxG2, 1);
    TextDrawUseBox(BoxG2, 1);
    TextDrawBoxColor(BoxG2, -1);
    TextDrawTextSize(BoxG2, 491.000000, 0.000000);


    BoxG3 = TextDrawCreate(494.000000, 101.000000, " ");
    TextDrawBackgroundColor(BoxG3, 255);
    TextDrawFont(BoxG3, 1);
    TextDrawLetterSize(BoxG3, 0.500000, -0.300000);
    TextDrawColor(BoxG3, -1);
    TextDrawSetOutline(BoxG3, 0);
    TextDrawSetProportional(BoxG3, 1);
    TextDrawSetShadow(BoxG3, 1);
    TextDrawUseBox(BoxG3, 1);
    TextDrawBoxColor(BoxG3, -1);
    TextDrawTextSize(BoxG3, 638.000000, 0.000000);


    BoxG4 = TextDrawCreate(646.000000, 77.000000, "L");
    TextDrawBackgroundColor(BoxG4, 255);
    TextDrawFont(BoxG4, 1);
    TextDrawLetterSize(BoxG4, 0.000000, 2.599999);
    TextDrawColor(BoxG4, -1);
    TextDrawSetOutline(BoxG4, 0);
    TextDrawSetProportional(BoxG4, 1);
    TextDrawSetShadow(BoxG4, 1);
    TextDrawUseBox(BoxG4, 1);
    TextDrawBoxColor(BoxG4, -1);
    TextDrawTextSize(BoxG4, 636.000000, 0.000000);

    Also bisher hat es noch nicht Funktioniert.
    Bisher ist das so wenn ID 0 das Geld gesetzt wird bekommen alle das Geld angezeigt aber in der Datenbank wird das richtig angegeben also wenn ich jemanden das Geld setze ist das in der Datenbank angegeben aber es wird nicht auf das Textdraw ausgegeben.


    Hier der Geldtimer:



    public GeldTimer(playerid)
    {
    new string[124];
    new vgeld[MAX_PLAYERS];
    vgeld[playerid] = sInfo[playerid][cash];
    format(string, sizeof(string), "%d ~g~EUR", vgeld[playerid]);
    TextDrawSetString(Geldlabel,string);
    }


    EDIT:
    Hier noch der Befehl ich hatte einen MySQL Error und hab den jetzt weggemacht



    ocmd:setcash(playerid,params[])
    {
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,COLOR_DRED,"Dein Adminrang ist zu niedrig!");
    new pID,cashstring,string[128];
    if(sscanf(params,"ui",pID,cashstring))return SendClientMessage(playerid,COLOR_GREY,"INFO: {00A5FF}/setcash {B3B3B3}[playerid] [cash]");
    sInfo[pID][cash]=cashstring;
    savePlayer(pID);
    format(string,sizeof(string),"Ein Admin hat dein Geld auf %i EUR gesetzt.",cashstring);
    SendClientMessage(pID,COLOR_DGREEN,string);
    format(string,sizeof(string),"Du hast das Geld von %s auf %i EUR gesetzt.",SpielerName(pID),cashstring);
    SendClientMessage(playerid,COLOR_DGREEN,string);
    return 1;
    }

    savePlayer(playerid)
    {
    if(sInfo[playerid][eingeloggt]==0)return 1;
    //Speichern level,money
    new query[128];
    format(query,sizeof(query),"UPDATE user SET level='%i',geld='%i',alevel='%i' WHERE id='%i'",sInfo[playerid][level],sInfo[playerid][geld],sInfo[playerid][alevel],sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }

    Hey ich hab da ein Befehl gebastelt aber der Befehl setzt von allen Accounts das Geld auf das was ich dem einen gesetzt habe.
    Wo ist da der Fehler? (Ich speicher auf MySQL)




    ocmd:setcash(playerid,params[])
    {
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,COLOR_DRED,"Dein Adminrang ist zu niedrig!");
    new pID,cash,n1[128],n2[128];
    if(sscanf(params,"ui",pID,cash))return SendClientMessage(playerid,COLOR_GREY,"INFO: {00A5FF}/setcash {B3B3B3}[playerid] [geld]");
    sInfo[pID][geld]=cash;
    savePlayer(pID);
    format(n1,sizeof(n1),"Ein Admin hat dein Geld auf %i EUR gesetzt.",cash);
    format(n2,sizeof(n2),"Du hast das Geld von %s auf %i EUR gesetzt.",SpielerName(pID),cash);
    SendClientMessage(playerid,COLOR_DGREEN,n1);
    SendClientMessage(pID,COLOR_DGREEN,n2);
    return 1;
    }

    isAdmin(playerid,a_level)
    {
    if(sInfo[playerid][alevel]>=a_level)return 1;
    return 0;
    }


    Hier die Abfrage und bei dem switch ist auch noch die Warnung:


    script.pwn(372) : warning 202: number of arguments does not match definition

    Kann mir wer helfen? Ich hab da ein Befehl gebastelt aber der zeigt mir den falschen Rang an.
    Also ich speicher mit MySQL und das soll so funktionieren, dass jeder Rang seine eigenen Helpliste bekommt aber es wird immer nur die für den Probe Supporter angezeigt.




    ocmd:ah(playerid,params[])
    {
    if(isAdmin(playerid,1))
    {
    SendClientMessage(playerid,COLOR_GREY,":::::::::::{FFF000}Admin Help{BEBEBE}:::::::::::");
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Probe Supporter:{BEBEBE} /ah, /delcar, /freeze, /unfreeze");
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Probe Supporter:{BEBEBE} /aduty, /goto, /gethere, /heal, /tele");
    SendClientMessage(playerid,COLOR_GREY,"");
    }
    else if(isAdmin(playerid,2))
    {
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Supporter:{BEBEBE} /ah, /spawncar, /delcar, /freeze, /unfreeze");
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Supporter:{BEBEBE} /aduty, /goto, /gethere, /clearchat, /heal, /tele");
    SendClientMessage(playerid,COLOR_GREY,"");
    }
    else if(isAdmin(playerid,3))
    {
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Community Manager:{BEBEBE} /ah, /spawncar, /delcar, /freeze, /unfreeze");
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Community Manager:{BEBEBE} /aduty, /goto, /gethere, /slap, /clearchat, /heal, /tele");
    SendClientMessage(playerid,COLOR_GREY,"");
    }
    else if(isAdmin(playerid,4))
    {
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Scripter:{BEBEBE} /ah, /spawncar, /delcar, /freeze, /unfreeze, /gmx, /jetpack, /stopjetpack");
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Scripter:{BEBEBE} /aduty, /goto, /gethere, /slap, /clearchat, /heal, /tele, /givegun");
    SendClientMessage(playerid,COLOR_GREY,"");
    }
    else if(isAdmin(playerid,5))
    {
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Server Leiter:{BEBEBE} /ah, /spawncar, /delcar, /freeze, /unfreeze, /gmx, /jetpack, /stopjetpack");
    SendClientMessage(playerid,COLOR_GREY,"{FFFF00}Server Leiter:{BEBEBE} /aduty, /goto, /gethere, /slap, /clearchat, /gotocoords, /heal, /tele, /givegun");
    SendClientMessage(playerid,COLOR_GREY,"");
    }
    else return SendClientMessage(playerid,COLOR_DRED,"Dein Adminrang ist zu niedrig!");
    return 1;
    }