Was genau kommt denn nun ingame?
Hau zur not mal ein paar prints mit debug´s rein.
Beiträge von RnBexclusiv
-
-
Im Endeffekt ist es doch eh deine eigene Sache.
-
Wieso released man sowas?
-
Wieso macht ihr es euch so unständlich?
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
if(GetPVarInt(playerid,"aLic") == 0)
RemovePlayerFromVehicle(playerid);
}
return 1;
} -
dcmd_giverank(playerid,params[])
{
if(GetPVarInt(playerid,"Leader") == 0) return SendClientMessage(playerid,COLOR,"Du bist kein Leader!");
new _pid,_r,_s[128];
if(sscanf(params,"dd",_pid,_r)) return SendClientMessage(playerid,COLOR,"Benutze: /giverank [PlayerID][RankID]");
if(!IsPlayerConnecte(_pid)) return SendClientMessage(playerid,COLOR,"Spieler ist nicht online!");
if(GetPVarInt(playerid,"FraktionLeader") != GetPVarInt(_pid,"Fraktion")) return SendClientMessage(playerid,COLOR,"Dieser Spieler ist nicht in deiner Fraktion");
else
{
SetPVarInt(playerid,"FraktionRang",_r);
format(_s,sizeof(_s),"Du hast %s Rank %d gegeben!",PlayerName(_pid),_r);
SendClientMessage(playerid,COLOR,_s);
format(_s,sizeof(_s),"Du hast von %s den Rank %d bekommen",PlayerName(playerid),_r);
SendClientMessage(_pid,_s);
}
return 1;
}Ohne gewähr alles ohne compiled geschrieben.
-
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == SECONDARY_ATTACK)
{
if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,1123.1354980469, -2037.0114746094, 68.893630981445))
{
SetPlayerPos(playerid,246.783996,63.900199,1003.640625);
SetPlayerInterior(playerid,6);
SetPlayerVirtualWorld(playerid,1);
}
}
else if(PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,246.783996,63.900199,1003.640625))
{
SetPlayerPos(playerid,1123.1354980469, -2037.0114746094, 69.893630981445);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
}
}
}
return 1;
} -
ocmd:fch(playerid,params[])
{
new text[300],string[100];
if(sscanf(params,"s[300]",text))return SendClientMessage(playerid,ROT,"/fch [Text]");
for(new i=0; i<MAX_PLAYERS; i++) // hier sind die fehlermeldungen..
{
if(IsPlayerConnected(i))
{
if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
{
format(string,100,"%s %s: %s",ReturnRank(GetPVarInt(playerid,"FraktionRang"),GetPVarInt(playerid,"Fraktion")),PlayerName(playerid),text);
SendClientMessage(i,COLOR,string);
}
}
}
return 1;
}Und das noch einfügen Iwo
stock PlayerName(playerid)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
return pname;
} -
Wenn du uns nun noch sagst welche Zeile das ist...
Mensch bitte ein bisschen überlegen bevor man es postet.
Dankeee -
Hm...
Kann ja auch nicht gehen
if(!IsPlayerNPC(playerid))
{
new pName[MAX_PLAYER_NAME];
new LeaveText[256];
GetPlayerName(playerid, pName, sizeof(pName));
switch(reason)
{
case 0: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Crash/Error]", pName);
case 1: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Verlassen]", pName);
case 2: format(LeaveText, sizeof(LeaveText), "{FF0000}<< {FFFFFF}Anti-Offlineflucht{FF0000} >> {FFFFFF}%s hat den Server verlassen. {FF0000}[Kick/Ban]", pName);
}
SendRangeMessage(playerid, COLOR_RED, LeaveText, 25.0);
}Wenn du die Spieler doch schon an alle in der Range verschickst und dann nochmal an alle auf dem Server kann es nur vollgespammt werden.
-
Ohne Code kann ich dir leider nicht helfen wie gesagt.
Schreibe ein Rankbefehl mit deinen Variablen etc. Wenn dieser nicht funktioniert melde dich hier. -
Bin mir unsicher ob man switch im switch verwenden kann aber probier es einfach mal aus.
stock ReturnRank(fraktion,rank)
{
new _s[128];
switch(fraktion)
{
case 1:
{
switch(rank)
{
case 1:format(_s,sizeof(_s),"%s",Armyrangname1);
case 2:format(_s,sizeof(_s),"%s",Armyrangname2);
case 3:format(_s,sizeof(_s),"%s",Armyrangname3);
case 4:format(_s,sizeof(_s),"%s",Armyrangname4);
case 5:format(_s,sizeof(_s),"%s",Armyrangname5);
case 6:format(_s,sizeof(_s),"%s",Armyrangname6);
}
}
case 2:
{
switch(rank)
{
case 1:format(_s,sizeof(_s),"%s",lspdrangname1);
case 2:format(_s,sizeof(_s),"%s",lspdrangname2);
case 3:format(_s,sizeof(_s),"%s",lspdrangname3);
case 4:format(_s,sizeof(_s),"%s",lspdrangname4);
case 5:format(_s,sizeof(_s),"%s",lspdrangname5);
case 6:format(_s,sizeof(_s),"%s",lspdrangname6);
}
}
}
return _s;
}und noch
ocmd:fch(playerid,params[])
{
new text[300],string[100];
if(sscanf(params,"s[300]",text))return SendClientMessage(playerid,ROT,"/fch [Text]");
for(new i=0; i<MAX_PLAYERS(); i++) // hier sind die fehlermeldungen..
{
if(IsPlayerConnected(i))
{
if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
{
format(string,100,"%s %s: %s",ReturnRank(GetPVarInt(playerid,"FraktionRang"),GetPVarInt(playerid,"Fraktion")),PlayerName(playerid),text);
SendClientMessage(i,COLOR,string);
}
}
}
return 1;
} -
Sooo
Einmal brauchst du erstmal
stock PlayerName(playerid)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
return pname;
}Dann habe ich dir eine neue Funktion geschrieben
stock ReturnArmyRank(rank)
{
new _s[128];
switch(rank)
{
case 1:format(_s,sizeof(_s),"%s",Armyrangname1);
case 2:format(_s,sizeof(_s),"%s",Armyrangname2);
case 3:format(_s,sizeof(_s),"%s",Armyrangname3);
case 4:format(_s,sizeof(_s),"%s",Armyrangname4);
case 5:format(_s,sizeof(_s),"%s",Armyrangname5);
case 6:format(_s,sizeof(_s),"%s",Armyrangname6);
}
return _s;
}Und nun dein Befehl
ocmd:fch(playerid,params[])
{
new text[300],string[100];
if(sscanf(params,"s[300]",text))return SendClientMessage(playerid,ROT,"/fch [Text]");
for(new i=0; i<MAX_PLAYERS(); i++) // hier sind die fehlermeldungen..
{
if(IsPlayerConnected(i))
{
if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
{
new rangname[64];
if(GetPVarInt(i,"Fraktion")==1)
{
format(string,100,"%s %s: %s",ReturnArmyRank(GetPVarInt(playerid,"FraktionRang")),PlayerName(playerid),text);
SendClientMessage(i,COLOR,string);
}
}
}
}
return 1;
}Alles ausm Kopf geschrieben wenn fehler da sind bitte melden.
-
ocmd:makeleader(playerid,params[])
{
new userid, frak, string[128], fraktname[20];
if(!isPlayerAnAdmin(playerid,1337))return SendClientMessage(playerid,Rot,"Du bist kein Administrator Rank 1339.");
if(sscanf(params,"ud",userid,frak))return SendClientMessage(playerid,Hellblau,"Benutzung: /makeleader [ID] [Fraktion(1-20)]");
if(frak < 0 || frak > 20)return SendClientMessage(playerid,Orange,"Gib bitte eine gültige Fraktion ein.");
SetPVarInt(userid,"Leader",frak);
switch(GetPVarInt(playerid,"Fraktion"))
{
case 0:{format(fraktname,20,"Bürger");}
case 1:{format(fraktname,20,"%s",fraktname1);}
case 2:{format(fraktname,20,"%s",fraktname2);}
case 3:{format(fraktname,20,"%s",fraktname3);}
case 4:{format(fraktname,20,"%s",fraktname4);}
case 5:{format(fraktname,20,"%s",fraktname5);}
case 6:{format(fraktname,20,"%s",fraktname6);}
case 7:{format(fraktname,20,"%s",fraktname7);}
case 8:{format(fraktname,20,"%s",fraktname8);}
case 9:{format(fraktname,20,"%s",fraktname9);}
case 10:{format(fraktname,20,"%s",fraktname10);}
case 11:{format(fraktname,20,"%s",fraktname11);}
case 12:{format(fraktname,20,"%s",fraktname12);}
case 13:{format(fraktname,20,"%s",fraktname13);}
case 14:{format(fraktname,20,"%s",fraktname14);}
case 15:{format(fraktname,20,"%s",fraktname15);}
case 16:{format(fraktname,20,"%s",fraktname16);}
case 17:{format(fraktname,20,"%s",fraktname17);}
case 18:{format(fraktname,20,"%s",fraktname18);}
case 19:{format(fraktname,20,"%s",fraktname19);}
case 20:{format(fraktname,20,"%s",fraktname20);}
}
format(string,sizeof(string),"Administrator %s hat dich zum Leader der Fraktion %s ernannt.",SpielerName(playerid),fraktname);
SendClientMessage(userid,Gruen,string);
SendClientMessage(userid,Weiß,"__________________________________________________________________");
SendClientMessage(userid,Gruen,"Du hast nun Pflicht als Leader mindestens 2 Wochen in dieser Fraktion zu bleiben.");
SendClientMessage(userid,Gruen,"Solltest du diese Regel verstoßen, wird es eine Frak Sperre nachsichziehen.");
SendClientMessage(userid,Gruen,"Die Leaderhilfe und die Frakhilfe kannst du mit /leaderhelp und /frakhelp aufrufen.");
SendClientMessage(userid,Rosa,"Viel Spaß & Viel Glück wünscht dir die [NYCR] - Projektleitung.");
format(string,sizeof(string),"Du hast den Spieler %s zu einem Leader der Fraktion %s ernannt.",SpielerName(userid),fraktname);
SendClientMessage(playerid,Gruen,string);
return 1;
}Habe bisschen was geändert.
Was genau ging noch nicht? -
Baue dies in dein Script ein
stock PlayerName(playerid)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
return pname;
}Und dann kannst du deinen Code folgendermassen abändern
ocmd:m(playerid,params[])
{
new result [128];
if(IsAnCop(playerid))
{
if(sscanf(params,"s",result))return SendClientMessage(playerid,Grau,"Benutze: /m(egaphone) [Text]");
{
new resultstring[256];
new member = GetPVarInt(playerid,"Fraktion");
if(member==1)
{
if(GetPVarInt(playerid,"OnDuty")!=0)return 1;
{
format(resultstring,sizeof(resultstring),"[Polizist %s:o< %s]",PlayerName(playerid),result);
ProxDetector(60.0,playerid,resultstring,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
}
}
else if(member==2)
{
if(GetPVarInt(playerid,"OnDuty")!=0)return 1;
{
format(resultstring,sizeof(resultstring),"[FBI Agent %s:o< %s]",PlayerName(playerid),result);
ProxDetector(60.0,playerid,resultstring,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
}
}
else if(member==3)
{
if(GetPVarInt(playerid,"OnDuty")!=0)return 1;
{
format(resultstring,sizeof(resultstring),"[Soldat %s:o< %s]",PlayerName(playerid),result);
ProxDetector(60.0,playerid,resultstring,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW);
}
}
}
}
return 1;
} -
Setze eine Variable vom Spieler auf True wenn das Dialog angezeigt wird.
Du startest ebenfalls dann den Timer.
Wenn der Timer abgelaufen ist und die Variable noch auf true ist = Kick.
Wenn er die Rechnung löst = false. -
Deine Abfrage hat keinen Sinn.
Du prüfst dem Spieler seine Fraktion.
Wenn 1 == ?
Du musst schon den Rang von dem Spieler haben. -
Zeige uns dochmal deinen momentan befehl.
Und deine PVars ebenfalls damit.
Wie hast du den Leaderposten definiert etc. -
Naja wenn man als Cop den rang eines Groove setzen kann.
Dann hast du ne falsche abfrage. -
stock GetPlayerVehiclePrice(modelid)
{
switch(modelid)
{
case 452: return 50000;
case 411: return 150000;
}
}
Probier malEDIT://
Du musst natürlich nun die Funktion so abfragen
new model = GetPlayerVehiclePrice(GetVehicleModel(GetPlayerVehicleID(playerid)); -
Kannst du evt. noch ein bisschen weiter in das (<<<) eingehen.
Welche Möglichkeiten hat man damit?
Wozu benutzt man es nun eig.?Vielen dank schonmal.