Du hast einen wichtigen Befehl vergessen: mysql_next_row();
Setz den Befehl mal nach dem mysql_store_result, mal sehen obs dann geht.
Beiträge von maddinat0r
-
-
Oben im Script:
forward robtimer(playerid);
new bool:rob[MAX_PLAYERS];Unter OnPlayerCommandText (weiß nicht ob das mit OCMD so richtig ist, benutze es nicht):
OCMD:rob(playerid,params[])
{
if(rob[playerid] == true) return SendClientMessage(playerid, COLOR_RED, "Du hast gerade erst jemanden ausgeraubt!");
new targetid;
if(sscanf(params,"u",targedid)) return 0;
new Float:tpos[3];
GetPlayerPos(targetid,tpos[0],tpos[1],tpos[2]);
if(!IsPlayerInRangeOfPoint(playerid,1.5,tpos[0],tpos[1],tpos[2])) return 0;
new robgeld = random(749) + 501;
GivePlayerMoney(playerid,robgeld);
GivePlayerMoney(targetid,-robgeld);
SendClientMessage(targetid,COLOR_RED,"Du wurdest ausgeraubt!");
new robmsg[64];
format(robmsg,sizeof(robmsg),"Du hast $%d erbeutet!",robgeld);
SendClientMessage(playerid,COLOR_GREEN,robmsg);
rob[playerid] = true;
SetTimerEx("robtimer",300000,0,"d",playerid);
return 1;
}Ganz unten im Script:
public robtimer(playerid)
{
rob[playerid] = false;
return 1;
}Edit: kleinen Fehler behoben
-
Du Held du, beide Koordinatenangaben sind identisch xD
Außerdem wirst du hier wohl eher mit SetObjectRot arbeiten müssen, kommt ganz auf das
Objekt an. Und um das geschmeidig hinzubekommen (also nicht dass es abgehakt aussieht) musst du auch
nochma Zeit investieren. -
for(new i;i<MAX_VEHICLES;i++) SetVehicleToRespawn(i);
-
Versucht doch mal dieses Video hier ganz durchzuschauen.
Wers schafft, sollte sich an Guiness wenden, wär sicher n Weltrekord xD
http://www.youtube.com/watch?v=Q7aF_FhALzs&feature=related -
Ich glaub, dass es Scripter gibt, die nix besseres zu tun haben als Anfängern zu helfen xD
Irgendwie ist es sicher machbar, und dazu benötigt man ganz sicher nicht nen Profi.//Edit:
@ dead
ZitatHast du erstmal ein 15k-Zeilen-Script und einen Klammerfehler, darfst du dich (ich rede jetzt von Pawno)....
Wenn du diese Textstelle meinst, ich habe hier ganz bewusst vom Programm selbst gesprochen, nicht von der Sprache.
Zitat...viele Leute Programme rausgebracht die den Compiler von Pawno nutzen, bloß...
Hier ebenfalls, da ja der Compiler schon mit dem Programm mitgeliefert ist.
-
Yop, alles in Filterscripts zu packen hat natürlich seine Vorteile.
Zum ersten, falls du mal z. B. das Haussystem updaten willst musst du jetzt nicht extra das ganze Gamemode
neustarten, sondern eben nur das Filterscript.
Zum zweiten, wie du schon erwähnt hast, ist es viel übersichtlicher.
Bloß musst du es so hinkriegen, dass die Filterscripts reibungslos mit dem Gamemode verbunden sind, bzw. Daten hin und
herschicken können.//Edit
Man kann im Endeffekt nur mit der Funktion CallRemoteFunction arbeiten, um wichtige Sachen auszutauschen. -
Zum Thema schwer in Pawn scripten kann ich dir ein Lied singen xD
Gut, Erfahrungen in VB hab ich zwar nicht wirklich, aber das mit dem Deubg wär echt einfacher.
Ein klassisches Beispiel ist ja auch der allseits beliebte Klammerfehler.
Hast du erstmal ein 15k-Zeilen-Script und einen Klammerfehler, darfst du dich (ich rede jetzt von Pawno)
vielleicht nen ganzen Tag damit rumschlagen, die fehlende Klammer zu suchen.
Aber es haben ja schon viele Leute Programme rausgebracht die den Compiler von Pawno nutzen, bloß
mit ein paar Extras, die auch z. B. Klammerfehler finden (zwar nicht konkret debuggen, aber immerhin). -
Manchmal ist es so, dass man die dümmsten und noch so kleinsten Fehler erst nach 1-2 Stunden findet.
War mir oft so wie dir, du bist also nicht der erste Mensch auf der Welt xD -
Setze das SetPlayerHealth doch ganz unten hin, also über return 1;
-
Ich verweise jetzt mal auf diese Seite.
Also wenn das nicht 009 gemacht hat, dann wohl niemand.
Außer jemand anderer hat es reingestellt, aber woher sollte er Zugriff haben? -
Was sind die Rates?
Irgendwelche besonderen Features?
Seid ihr ein Fun-Server?Edit: Link zur Homepage?
-
Kommt den irgeneine Nachricht, wenn du /register machst?
Also z. B. "Du hast dich erfolgreich registriert..."?
Wenn nein, dann solltest du das strget bei jedem strcmp rauslöschen.
Ich weiß jetzt nicht ob die Befehle auch mit gehen, aber ich kenns normal so:
if(strcmp(cmdtext, "/register", true) == 0)//Edit: Schwachsinn, du überträgst ja garkeine Parameter!
Benutz dcmd in Verbindung mit sscanf, ist das beste was du machen kannst. -
Keine Angst, soweit ich das beurteilen kann, entwickelt Alex009 (so heißt der Macher glaub ich) das Plugin weiter.
Einfach abwarten und Tee trinken. -
http://forum.sa-mp.com/showthread.php?t=55261
Gutes Tutorial, hat mir auch geholfen.
1. Es frisst viel Speicher
2. Man braucht soviel nicht wirklich
3. Das Maximum an Zeichen ist 128 -
omg.
Benutze NIE 256 als Stringgröße außer für MySQL-Queries!Und nach dem Sscanf-Befehl erstma return vor dem SendClientMessage hinschreiben, also
if(sscanf(params"A(sdf)",asdf)) return SendClientMessage(..... -
Ich werd dir jetzt auch mal versuchen zu helfen, da du hier ja ziemlich verzweifelst und dir keiner so richtig helfen kann.
Ich benutze zwar kein Dini, aber
dini_Create(str);
{ //1. Klammer
dini_IntSet(str,"ID",CarInfo[carid][ID]);
dini_IntSet(str,"Model",CarInfo[carid][model]);
dini_IntSet(str,"Farbe1",CarInfo[carid][farbe1]);
dini_IntSet(str,"Farbe2",CarInfo[carid][farbe2]);
dini_FloatSet(str,"x",CarInfo[carid][carx]);
dini_FloatSet(str,"y",CarInfo[carid][cary]);
dini_FloatSet(str,"z",CarInfo[carid][carz]);
dini_FloatSet(str,"a",CarInfo[carid][cara]);
dini_IntSet(str,"Preis",CarInfo[carid][car_preis]);
dini_Set(str,"Besitzer","Keiner");
dini_Set(str,"Key1","Keiner");
dini_Set(str,"Key2","Keiner");
dini_Set(str,"Key3","Keiner");
dini_IntSet(str,"Motorschaden",0);
dini_IntSet(str,"Tankinhalt",100);
dini_IntSet(str,"Lackierung",0);
dini_IntSet(str,"Nitro",0);
dini_IntSet(str,"Hydraulik",0);
dini_IntSet(str,"Vents",0);
dini_IntSet(str,"Lamps",0);
dini_IntSet(str,"Wheels",0);
dini_IntSet(str,"Hood",0);
dini_IntSet(str,"Roof",0);
dini_IntSet(str,"Auspuff",0);
dini_IntSet(str,"Spoiler",0);
dini_IntSet(str,"StossR",0);
dini_IntSet(str,"StossF",0);
dini_IntSet(str,"SideR",0);
dini_IntSet(str,"SideL",0);
dini_Set(str,"Nummernschild","Classic");
return LadeFahrzeug(carid);
} //2. Klammer
Soweit ich weiß, gehören da doch keine Klammern hin, oder? (Wie gesagt, benutze kein Dini)Und probier es auch statt CreateVehicle mit AddStaticVehicle.
-
[pwn]
if(GetPVarInt(playerid,FW) == 4) //Hiier deine Frak-ID ändern und PVarInt anpassen
{
SetSkin(playerid,feuerwehrskins[random(2)]); //Feuerwehrskins ist der Array wo die Skins gespeichert sind, in den eckigen Klammern danach welcher Platz das ist. (Skin 128 wäre z.B. Platz 0)
} -
Du könntest n Array erstellen, wo dann alle Skins der jeweiligen Fraktion sind.
new feuerwehrskins[3] = {128, 129, 130};
Oder du benutzt mein dynamisches Skinsystem, dafür brauchst du aber MySQL. -
Wie willst du n Spieler der gebannt ist nen String ausgeben lassen?!
Dann connectet er auf den Server und da wird halt stehen "You are banned from this server.".
Da hilft auch kein Timer weiter.
Dann musst du selbst n Bann-Befehl schreiben und nicht mit der Standardfunktion Ban(playerid);
Erst dann kommt der ganze Rest mit dem Grund speichern und co.
Ist also nicht ganz einfach für dich.