Am besten ist es, wenn ihr bei einem Code, der Parameter enthählt, dabei schreibt, wie ihr die/den Parameter auslest (dcmd, sscanf, strtok, strget)
Damit erspart man sich dann auch einen Code, wie diesen:
if(strcmp(cmdtext,"/heal",true,5)==0) {
if(!strlen(cmdtext[6])) return SendClientMessage(playerid,FARBE,"/heal ID");
new typ=strval(cmdtext[6]);
if(IsPlayerConnected(typ)) {
SetPlayerHealth(typ,100);
GivePlayerMoney(typ,-100);
GivePlayerMoney(playerid,100); }
return 1;
}
Beiträge von KeksOfDeath
-
-
http://rapidshare.com/files/236478655/tuningcarv1.1.pwn.html
Die Datei kann 10 mal heruntergeladen werden... also seh zu, dass du unter den ersten 10 bist^^ -
Vllt hilft dir das
Register System -
Es wäre ratsam, das Passwort als string auszulesen---> dini_Get
Wobei du "SpielerInfo[playerid][Passwort]" dann auch als string deklarieren müsstest -
Kommt immer drauf an, wie dus abzählen willst^^
Wenn du ein extra Timer startest:
SetTimerEx("freialassen",zeit*60000,0,"d",giveplayerid);
Wenn dun Timer hast, der einfach jede Sekunde eine Zeiteinheit subtrahiert:
//gan z nacvh oben:
new kzeit[MAX_PLAYERS];
//in den cmd:
kzeit[giveplayerid]=(zeit*60)+1;
//im timer:
if(kzeit[id]>=2) {
kzeit[id]--; }
else if(kzeit[id]==1) {
//lässt ihn halt frei
kzeit[id]=0; } -
if(strcmp(cmdtext, "/tune", true) == 0) {
if(IsPlayerAdmin(playerid)) {
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) {
ModCar(playerid); }
else {
SendClientMessage(playerid, COLOR_RED, "[ERROR] You cannot modify/tune a car unless you are the driver."); }}
else { SendClientMessage(playerid,COLOR_RED,"Du musst Rcon-Admin sein"); }
return 1;
} -
Das "CP[MAX_PLAYERS]" musst du nur 1 mal, ganz oben, als globale Variable deklarieren
Ansonsten erstellst du sie ja immer neu, wobei ihr Anfangswert=0 ist -
[...]
new rand = random(sizeof(gRandomDeathmatchSpawns));
SetPlayerPos(playerid, gRandomDeathmatchSpawns[rand][0], gRandomDeathmatchSpawns[rand][1], gRandomDeathmatchSpawns[rand][2]);
[...] -
jetzt kann ich doch nicht bei AddPlayerClass (1,2,3,4,5,6,7,x,y,z.....
AddPlayerClass(0,x,y,z,...);
AddPlayerClass(1,x,y,z,...);
AddPlayerClass(2,x,y,z,...);
AddPlayerClass(3,x,y,z,...);
AddPlayerClass(4,x,y,z,...);
AddPlayerClass(5,x,y,z,...);
AddPlayerClass(6,x,y,z,...);
AddPlayerClass(7,x,y,z,...);
...
Oder wenn du alle haben willst:
for(new i=0; i<299; i++) {
AddPlayerClass(i,x,y,z,...); } -
Zu Frage 1: Klick, die "0" ist die Skinid, musst du natürlich ändern
Zu Frage 2: Das Obejktlimit liegt bei 150-250
Zu Frage 3: [ SCRIPTING ] Random Spawn -
new Float:gRandomPlayerSpawns[11][3] = {
{2622.8799,410.6660,6.5970},
{2630.6230,469.3402,5.1221},
{2679.0183,459.6478,5.1321},
{2657.0662,425.2959,6.6054},
{2628.9194,482.1089,5.1226},
{2666.5422,478.4476,5.1181},
{2628.8086,462.3764,5.1221},
{2673.8872,420.5434,6.6013},
{2651.3726,449.6331,5.1199},
{2678.6292,464.3182,5.1319},
{2664.4861,476.6132,5.1183}
}; -
Beim Tod verliert amn automatisch etwas Geld, geb dir mal 1000$, sterb dann un guck, wie viel du verloren hast, das musst du dem Spieler beim Tod dann geben
-
12 Punkte pro Menu sind maximum
-
-
Dann tausche halt das "SendClientMessageToAll(COLOR,setzen);" mit dem aus:
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(ja, wenn er hitman ist) {
SendClientMessage(i,COLOR,setzen); }}} -
dcmd_afk(playerid,params[])
{
new afkgrund[64];
if(sscanf(params, "s", afkgrund)){
return SendClientMessage(playerid, 0xFF0000FF, "Benutze /afk Grund um dich AFK zu melden.");
}
SetTimerEx("afktimer",15000,0,"ds",playerid,afkgrund);
return 1;
}
//gan z nach unten:
public afktimer(playerid,grund[]) {
if(IsPlayerConnected(playerid)) {
TogglePlayerControllable(playerid, 0);
new name[MAX_PLAYER_NAME], string[100];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s ist jetzt im AFK | Grund: %s.",name,grund);
SendClientMessageToAll(WEIS, string); }
return 1;
}
//ganz nach oben:
forward afktimer(playerid,grund[]); -
Wenn du dir Pawno runterlädst (sind ja auch paar Scripts bei), guck in den filterscripts Ordner, dort gibts ein FS namens "vacations", dies sind Animationen
-
Hört sich sehr an GoH Reallife Handy system an. Mach doch mal selber was anstatt abzugucken
Unsers ist anders aufgebaut, keine Angst xD
@ Topic:
//ganz nach oben:
new Menu:handy;
//OnGameMOdeInit:
handy=CreateMenu(x,y,"Handy");
AddMenuItem(handy,0,"Polizri");
AddMenuItem(handy,0,"Abschleppdienst");
AddMeniItem(handy,0,"Player");
//ONPlayerSelectedMenuRow:
new Menu:jetztm=GetPlayerMenu(playerid);
if(jetztm==handy) {
switch(row) {
case 0: {
new name[MAX_PAYER_NAME], s[100];
GetPlayerName(playerid,name,sizeof(name));
format(s,sizeof(s),"%s braucht die Polizei",name);
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
SendClientMessage(i,FARBE,s); }}}
}
//das mitm abschleppdienst ist ja das gleiche
case 2: {
new name[MAX_PAYER_NAME], s[20];
for(new i=0; i<MAX_PLAYERS; i++) {
if(IsPlayerCOnnecterd(i)) {
GetPlayerName(i,name,sizeof(name));
format(s,sizeof(s),"%d %s",i,name);
SendClientMessage(playerid,FARBE,s); }}
}
}}
Ich hoffe mal, dass ich das mit den Playern jetzt richtig verstanden habe -
Ich kann zwar nicht beweisen, aber dass es nicht am Script liegt, aber es ist sehr unwahrscheinlich, dann würde es ja öfters passieren und auch schon seit längerem so sein.
Dann fängt es auf einmal an, der Server bekommt nen übelzt hohen Ping, dann bei allen lost connection to Server, dann gehts wieder 5 sek, danach gehts wieder los.
Dann sind alle offline (Server ist leer) und hat immernoch den hohen Ping, dauert auch bei der Aktualisierung lange, bis er antwortet
Zurzeit läuft jetzt alles wieder normal, sind 5 Leute drauf und seit ca 20 Minuten kein Anzeichen von i-was mit hohem Ping oder sontiges -
Dann mach nen Anti Flood rein falls er deinen Server auf High Ping steigen lässt
Und was macht man, wenn derjenige, der flooded nicht mit Bots aufn Server kommt, sondern das i-wie anders macht?