Wenn der Spieler z.b Flyhack hat
Beiträge von Manniac
-
-
Nur mal so nebenbei..Man kann keine .amx "recompilen" bzw decoden..
-
Verwendest du phpmyadmin?
-
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
}
Ist der Ansatz. Weiteres müsstest du selbst schaffen -
Du musst natürlich noch eine Schleife erstellen, die alle Spieler durchgeht
-
Wenn du einen Stock erstellst und ihn nicht irgendwo aufrufst, sondern ihn einfach nur da stehen hast, kommt kein Error.
Solltest du den Stock aber irgendwo aufrufen, bekommst du einen Error. -
Wird nur angzeigt wenn der Stock aufgerufen wird.
bsp
stock Baum(playerid)
{
ladebaum(playerid);
return 1;
}
Kein Errorstock Baum(playerid)
{
ladebaum(playerid);
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
Baum(playerid);
return 1;
}#
Error -
if(response == 1)
{
SendClientMessage(playerid,WEIß,"Du hast den Betrag %d gezahlt!");
return 1;
}
Speicher den Wert des Tickets in einer Variable.
bsp:
new fine[MAX_PLAYERS];
bei deinem befehl
ocmd..
..
..
..
fine[pID] = betrag;Dann bei deinem Response
new str[128];
format(str,sizeof(str)," Du hast den Betrag von %d gezahlt",fine[playerid]);
SendClientMessage(playerid, -1, str);
//alternativ kannst du hier noch "fine" resetten
Achja, schreibe deinen Befehl so
ocmd:ticket(playerid,params[])
{
if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,WEIß,"Du bist kein agestellter bei der Polizei");
if(DutyPD[playerid] == 0)return SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
new pID, grund[265], betrag;
if(sscanf(params,"us[128]d",pID,grund,betrag)) return SendClientMessage(playerid,HELLBLAU,"Benutze: /Ticket [PLAYERID] [GRUND] [STRAFE]");
format(grund,sizeof(grund),"Du hast ein Ticket bekommen GRUND: %s \nDu musst eine Betrag von %d zahlen", grund, betrag);
ShowPlayerDialog(pID, DIALOG_TICKET, DIALOG_STYLE_MSGBOX, "TICKET", grund, "Bezahlen", "Flüchten");
return 1;
} -
-
Wäre cool, wenn du die Lösung für dein Problem posten würdest, und nicht einfach alles löschen würdest
-
-
wenn ich InGame einen Screen (mit "druck-Taste") mache sehe ich auf den Screen immer mein Desktop, daher frage ich mal bei euch nach!
Drück Ingame einfach F8 -
Ist mMn sinnlos, da jeder anders arbeitet und andere Variablen etc verwendet. Wird dann unübersichtlich
-
-
ocmd:ooc(playerid,params[])
{
new text[128];
if(sscanf(params,"s",text))return SendClientMessage(playerid,ROT,"Benutze: /ooc [Nachricht]");
format(text,sizeof(text),"*((%s: %s))",Spielername(playerid),text);
SendClientMessageToAll(BLAU,text);
}
else
{
if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((Team Mitglied %s: %s))",Spielername(playerid,text);
}
return 1;
}if(IsPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"*((%s %s: %s))",GetRang(playerid),Spielername(playerid,text);
Füge einfach dann noch meinen stock hinzu
-
stock GetRank(playerid)
{
new str[31];
switch(SpielerInfo[playerid][pAdminlevel])//ich nehme mal an, du speicherst so deine adminlevel
{
case 0:
{
strcat(str,"Spieler");
}
case 1:
{
strcat(str,"Probesupporter");
}
case 2:
{
strcat(str,"Supporter");
}
case 3:
{
strcat(str,"Moderator");
}
case 4:
{
strcat(str,"Administrator");
}
case 5:
{
strcat(str,"Teamleiter");
}
case 6:
{
strcat(str,"Projektleiter");
}
case 7:
{
strcat(str,"Scripter");
}
}
return str;
} -
Dein Code ist total sinnlos. Sind Fehler enthalten etc.
Um einen OOC zu gestalten, musst du dir erst ein paar Fragen stellen.
-Wer soll schreiben können
-Wer soll das lesen können
-Kann man ihn aktivieren/deaktivieren?Hier mal ein kleiner Code mit erklärung für dich
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
Hiermit bekommen wir den Namen des SpielersIch arbeite hier mal mit ocmd &sscanf
new gc = 0;
Ganz oben erstellen, damit wir wissen, ob der chat an oder aus ist.
ocmd@2:gc,globalerchat(playerid,params[])
{
new text[128];//neuer string
if(gc == 0)return SendClientMessage(playerid, -1, "Der Globale Chat wurde deaktiviert!");//wenn der chat aus ist
if(sscanf(params,"s[128]", text))return SendClientMessage(playerid, -1, " /gc <text>");//sollten keine parameter angegeben worden sein
new string[128];//neuer string zum formatieeren
format(string,sizeof(string)," %s: %s",SpielerName(playerid),text);//wir formatieren den string, da wir %s bei der native SendClientMessageToAll nicht verwenden können
SendClientMessageToAll(-1, string);//wir senden den string an alle Spieler
return 1;
}
ocmd:gca(playerid,params[])
{
new status;//neue variable
if(sscanf(params, "i", status))return SendClientMessage(playerid, -1, " /gca < 1 = ja > < 2 = nein >");//wir können den chat mit /gca 1 anschalten, mit /gca 2 ausschalten
if(status > 2 || status < 1)return SendClientMessage(playerid,-1," Nur 1 oder 2 möglich!");//man kann nur 1 oder 2 eingeben
if(status == 1 && gc != 1)//falls wir 1 eingegeben haben und der chat nicht an ist
{
gc = 1;//globale var auf 1 gesetzt
SendClientMessageToAll( -1, "Globaler Chat aktiviert!");
}
else if(status == 2 && gc !=2)//falls wir 2 (nein) angegeben haben und der chat nicht aus ist
{
gc =0;//var wird auf 0 gesetzt
SendClientMessageToAll( -1, " Globaler Chat deaktiviert!");
}
return 1;
} -
Bau mal bei den verschiedenen schritten print("1)";, print("2"); etc ein
-
Macht irgendwie nicht sonderlich viel sinn..
Evtl witzig für nen Funserver
-
Ich würde das via Enum lösen. So kannst du ganz einfach Variablen hinzufügen
enum e_Vehicleinfo//name des nums
{
vid,
f1,//farbe1
f2,//farbe2
mzustand//wenn es ein Float sein soll -> Float:mzustand
}
new Vdata[MAX_VEHICLES][e_Vehicleinfo];//deklarierung
ocmd:veh(playerid,params[])//befehl um auto zu erstellen
{
new vid,f1,f2,Float:pos[3];
if(sscanf(params,"ddd", vid,f1,f2))return SendClientMessage(playerid, 1-, " /veh <vid> <farbe1> <farbe2>");
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
new vehicle = CreateVehicle(vid,pos[0],pos[1],pos[2],0,f1,f2,50);
PutPlayerInVehicle(playerid,vehicle,0);
Vdata[vehicle][mzustand] = 100;//var wird geändert
Vdata[vehicle][vid] = vi;//var wird geändert
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new s[64];
new vehiclei = GetPlayerVehicleID(playerid);
format(s,sizeof(s)," Modelid: %d, Zustand: %d", Vdata[vehiclei][vid],Vdata[vehiclei][mzustand]);//daten aus der var werden übergeben bzw ausgelesen
SendClientMessage(playerid, -1, s);
}
return 1;
}Ungetestet, sollte vom Prinzip her so funktionieren