Meiner Meinung nach kommt diese Meldung, da du sobald du eine verbotene ID benutzt, nichts mehr "returnst".
return SCM(playerid, disallowedids);
Meiner Meinung nach kommt diese Meldung, da du sobald du eine verbotene ID benutzt, nichts mehr "returnst".
return SCM(playerid, disallowedids);
Hallo CapriZ,
mal als "kleiner Tipp" am Rande. In den Zeilen die du uns geschrieben hast, wird nirgendwo überprüft, ob jemand die STRG Taste drückt, somit kann es ja gar nicht funktionieren.
Das richtige Callback dafür wäre "OnPlayerKeyStateChange", dort kannst du abfragen, was passieren soll wenn jemand die STRG Taste drückt, also in deinem Fall beispielsweise, ob er beim ADAC/Oamt arbeitet und gerade in einem Tow-Truck sitzt, was du mit der ModelID abfragen kannst.
Hast du deinen Registrieren Dialog mit der selben ID, wie "DIALOG_TANKSTELLENKASSE" definiert?
Das würde erklären, das dann dieser Dialog erscheint.
if(strcmp(cmdtext,"/makepremium",true) == 0)
{
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
new pID,string[128],string2[256],reason;
if(sscanf(params,"uds", pID, reason))return SendClientMessage(playerid, WEIß, "Benutzung: /makepremium [SPIELER] [1=Premium Mitglied|-1=Kein Premium Mitglied] [Grund]");
SetPVarInt(pID, "Premium", GetPVarInt(pID, "Premium"));
format(string, sizeof(string), "Du hast %s zum Premium Mitglied gemacht %i", SpielerName(pID),);
SendClientMessage(playerid, GRÜN, string);
format(string2, sizeof(string2), "Du hast von einem Admin %i Premium Punkte bekommen. Grund: %s", reason);
SendClientMessage(pID, GRÜN, string2);
{
SpielerSpeichern(playerid);
}
return 1;
}
Damit sollte dein Pawno wieder funktionieren!.
Anbei ein klasse Tutorial für "Commands mit Parametern". -> [ SCRIPTING ] Commands mit Parametern
Eine ähnliche Funktionsweise hat auch OCMD!
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
{
IsTowTrucker[playerid]=1;
TowTruckers++;
SendClientMessage(playerid,0xFFFF00AA,"Drücke STRG zum abschleppen!");
}
else
{
if (TowTruckers>0)
{
SendClientMessage(playerid,0xFFFF00AA,"Wenn du ein Problem hast tippe /service mechanic!");
}
}
//}
if(newstate == PLAYER_STATE_ONFOOT && IsTowTrucker[playerid] == 1) //if((newstate==PLAYER_STATE_ONFOOT)&&(IsTowTrucker[playerid]==1))
{
IsTowTrucker[playerid]=0;
TowTruckers--;
}
if(newstate == PLAYER_STATE_PASSENGER && TowTruckers > 0)//if((newstate==PLAYER_STATE_PASSENGER)&&(TowTruckers>0))
{
SendClientMessage(playerid,0xFFFF00AA,"Wenn du ein Problem hast tippe /service mechanic!");
}
return 1;
}
Du musst einfach den "Quelltext Editor" benutzen, da sollte es klappen das alles untereinander steht.
->
Dann musst du mir ein bisschen mehr aus deinem Code zeigen, damit ich dir helfen kann...
if(newstate == PLAYER_STATE_ONFOOT && IsTowTrucker[playerid] == 1)
if(newstate == PLAYER_STATE_PASSENGER && TowTruckers > 0)
Du fragst bei "OnPlayerEnterVehicle" ab, ob es sich um einen Roller handelt. Dann lässt du den Checkpoint mit "SetPlayeRCheckpoint" anzeigen.
Dein Public "GetSpielerName" kannst du einfach entfernen. Diese Funktion ersetzen wir mit der Funktion/Stock GetSpielerName, da ein Public unnötig ist.
Diese Funktion fügst du nun in dein Script ein.
stock GetSpielerName(playerid)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}
Nun sollten die Namen richtig angezeigt werden. Dein Login/Register System kann mit deiner alten Funktion gar nicht funktioniert haben.
-> Spieler[pID][Adminlevel] = rang;
Das gibt den Rang zumindest einmal zum richtigen Spieler.
Die Namen und der Rang sollten eigentlich in der Nachricht angezeigt werden.
KKM
Das gibts nicht. Dir fehlt die a_samp Include!
Versuchs mal so:
stock IstErAmStand(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,2153.1157,-2146.6943,13.5469,5));
else if(IsPlayerInRangeOfPoint(playerid,2136.3438,-2136.6592,13.5469,5));
return 1;
}
Danke dir... Hast mir wie immer gut geholfen.
MfG,
Palme
Guten Tag,
ich habe mal wieder ein kleines Problem beim Scripten, besser gesagt, eine Frage.
Auf manchen Servern ist die "Timestamp" Funktion im Chat automatisch aktiviert.
Jedoch, habe ich keine möglichkeit gefunden, die Timestamp Funktion automatisch zu aktivieren (ohne /timestamp) einzugeben.
Habt ihr eine Lösung für mich?
MfG,
Palme
Das ist der wichtige Abschnitt in der Debug:
"[20:50:25] CMySQLHandler::Query(SELECT groupID FROM `wcf1_user_to_groups` WHERE userID = 1) - Successfully executed.
[20:50:25] >> mysql_store_result( Connection handle: 1 )
[20:50:25] CMySQLHandler::StoreResult() - Result was stored.
[20:50:25] >> mysql_num_rows( Connection handle: 1 )
[20:50:25] CMySQLHandler::NumRows() - Returned 3 row(s)
[20:50:25] >> mysql_fetch_row_format( Connection handle: 1 )
[20:50:25] CMySQLHandler::FetchRow() - Return: 1
[20:50:25] >> mysql_num_rows( Connection handle: 1 )
[20:50:25] CMySQLHandler::NumRows() - Returned 3 row(s)
[20:50:25] >> mysql_fetch_row_format( Connection handle: 1 )
[20:50:25] CMySQLHandler::FetchRow() - Return: 3
[20:50:25] >> mysql_num_rows( Connection handle: 1 )
[20:50:25] CMySQLHandler::NumRows() - Returned 3 row(s)
[20:50:25] >> mysql_fetch_row_format( Connection handle: 1 )
[20:50:25] CMySQLHandler::FetchRow() - Return: 4
[20:50:25] >> mysql_num_rows( Connection handle: 1 )
[20:50:25] CMySQLHandler::NumRows() - Returned 3 row(s)
[20:50:25] >> mysql_free_result( Connection handle: 1 )
[20:50:25] CMySQLHandler::FreeResult() - Result was successfully free'd."
Jedoch gibt er mir trotzdem die 0 zurück, obwohl der Benutzer in der Gruppe ist.
Bei mir gibt die Funktion "IsUserInGroup" andauernd 0 zurück, habt ihr eine Idee wieso?
MfG,
Palme
Oh ja, das war ein Denkfehler von mir...
Aber das musst du ja nicht mit übernehmen... :))
MfG,
Palme
So müsste es klappen:
ocmd:unban(playerid,params[])
{
new pID, string[256], console[256], Spielerdatei[256], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.acc",name);
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nich den benötigten Adminrang!");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutzung: /unban [Playername]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht Online!");
{
new File:Playername=fopen(Spielerdatei, io_read);
if(Playername)
{
if(dini_Int(Spielerdatei,"Ban")==0)
{
SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht gebannt.");
}
else
{
format(string,sizeof(string),"AdmCmd: %s wurde von %s entbannt.",SpielerName(pID),SpielerName(playerid));
format(console,sizeof(console),"AdmCmd: %s wurde von %s entbannt.\n",SpielerName(pID),SpielerName(playerid));
SendClientMessageToAll(ROT,string);
dini_IntSet(Spielerdatei,"Ban",0);
SpielerSpeichern(pID);
}
}
else
{
SendClientMessage(playerid,ROT,"Diesen Spieler gibt es nicht.");
}
}
return 1;
}
Versuchs mal so:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext,"/basejump1",true,10)== 0)
{
SetPlayerPos(playerid,1544.5455,-1353.5398,329.4739);
SendClientMessage(playerid,COLOR_GELB,"Du hast dich zum Basejump1 teleportiert!");
return 1;
}
return 1;
}