Bitte arbeite mit dem Quellcode, damit wir dir leichter helfen können.
//Codes richtig einfügen.
Bitte arbeite mit dem Quellcode, damit wir dir leichter helfen können.
//Codes richtig einfügen.
Heyho.
Eigentlich funktioniert alles, bisauf, dass ich die Waffe nicht bekomme, wenn ich durchlaufen....
#define MAX_PICKS 30
enum Picks_Info
{
iconID,
waffenID,
muniID,
Float:x,
Float:y,
Float:z
}
new PickInfo[MAX_PICKS][Picks_Info];
//OnGameModeInit
for(new pi=1; pi<MAX_PICKS; pi++)
{
LoadPicks(pi);
}
//OnPlayerPickupPickup
GivePlayerWeapon(playerid,PickInfo[pickupid][waffenID],PickInfo[pickupid][muniID]);
//Erstellung
ocmd:cpick(playerid,params[])
{
if(!istPlayerAdmin(playerid,8))return SendClientMessage(playerid,arot,"Info: Du kannst mit deinem Rang keine PickUps erstellen!");
new pick, waffe, munni, Float:xx, Float:yy, Float:zz;
GetPlayerPos(playerid,xx,yy,zz);
if(sscanf(params,"iii",pick,waffe,munni))
{
SendClientMessage(playerid,weis,"Benutzung: /cpick [Pickup ID] [Waffen ID] [Munnition]");
SendClientMessage(playerid,weis,"IDs: Deagle=348, MP5=353, AK=355, M4=356, Sniper=358");
return 1;
}
CreatePick(xx,yy,zz,pick,waffe,munni);
return 1;
}
//Stocks
stock LoadPicks(pickupid)
{
new DatFile[64];
format(DatFile,64,"/Picks/%d.ini",pickupid);
PickInfo[pickupid][x]=dini_Float(DatFile,"PosX");
PickInfo[pickupid][y]=dini_Float(DatFile,"PosY");
PickInfo[pickupid][z]=dini_Float(DatFile,"PosZ");
PickInfo[pickupid][iconID]=dini_Int(DatFile,"PickupID");
PickInfo[pickupid][waffenID]=dini_Int(DatFile,"WaffenID");
PickInfo[pickupid][muniID]=dini_Int(DatFile,"Munni");
CreatePickup(PickInfo[pickupid][iconID],1,PickInfo[pickupid][x],PickInfo[pickupid][y],PickInfo[pickupid][z],0);
//CreatePickup(dini_Int(DatFile,"PickupID"),1,dini_Float(DatFile,"PosX"),dini_Float(DatFile,"PosZ"),dini_Float(DatFile,"PosZ"),0);
return 1;
}
stock CreatePick(Float:xx, Float:yy, Float:zz, pickup, waffen, munni)
{
new DatFile[64];
for(new pp=1; pp<MAX_PICKS; pp++)
{
if(dini_Exists(DatFile))return 1;
format(DatFile,64,"/Picks/%d.ini",pp);
dini_Create(DatFile);
PickInfo[pp][x]=dini_FloatSet(DatFile,"PosX",xx);
PickInfo[pp][y]=dini_FloatSet(DatFile,"PosY",yy);
PickInfo[pp][z]=dini_FloatSet(DatFile,"PosZ",zz);
PickInfo[pp][iconID]=dini_IntSet(DatFile,"PickupID",pickup);
PickInfo[pp][waffenID]=dini_IntSet(DatFile,"WaffenID",waffen);
PickInfo[pp][muniID]=dini_IntSet(DatFile,"Munni",munni);
return LoadPicks(pp);
}
return 1;
}
Codes?
Suchen und finden
[ SCRIPTING ] Tutorial für ein funktionierendes Maskensystem
Irgendwie habe ich es immer noch nicht kapiert.....
Ich habe nun folgenden Code und folgenden Error:
ocmd:checkid(playerid,params[])
{
new id, string[128],s1[128],s2[128],s3[128],s4[128],s5[128];
if(!isPlayerAdmin(playerid,2))return SendClientMessage(playerid,arot,"Du hast nicht den passenden Adminrang.");
if(sscanf(params,"i",id))return SendClientMessage(playerid,weiß,"Info: /checkid [DatenbankID]");
format(s3,sizeof(s3),"%d",mysql_GetInt("players","Level","ID",id));
format(s5,sizeof(s5),"%d$",mysql_GetInt("players","Geld","ID",id));
format(s4,sizeof(s4),"%d",mysql_GetInt("players","Adminlevel","ID",id));
format(s1,sizeof(s1),"%s",mysql_GetString("players","Name","ID",id));
format(s2,sizeof(s2),"%s",mysql_GetString("players","Passwort","ID",id));
//s3=mysql_GetInt("players","Level","ID",id);
//s5=mysql_GetInt("players","Geld","ID",id);
//s4=mysql_GetInt("players","Adminlevel","ID",id);
//s1=mysql_GetString("players","Name","ID",id);
//s2=mysql_GetString("players","Passwort","ID",id);
format(string,sizeof(string),"[Name: %s] [Passwort: %s] [Level: %s] [Adminlevel: %s] [Geld: %s]",s1,s2,s3,s4,s5);
SendClientMessage(playerid,gelb,string);
return 1;
}
//Error
C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(375) : error 035: argument type mismatch (argument 4)
C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(376) : error 035: argument type mismatch (argument 4)
C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(377) : error 035: argument type mismatch (argument 4)
C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(378) : error 035: argument type mismatch (argument 4)
C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(379) : error 035: argument type mismatch (argument 4)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
Hey, Leute!
Ich habe nun endlich ein bisschen MySQL gecheckt....
Nun die Frage: Wie bekomme ich die Informationen eines angegebenen Spielers?
Kann mir da wer helfen?
ocmd:checkid(playerid,params[])
{
new id, string[128],s1[128],s2[128],s3[128],s4[128],s5[128];
if(!isPlayerAdmin(playerid,2))return SendClientMessage(playerid,arot,"Du hast nicht den passenden Adminrang.");
if(sscanf(params,"d",id))return SendClientMessage(playerid,weiß,"Info: /checkid [DatenbankID]");
s3=mysql_GetInt("players","Level","ID",id);
s5=mysql_GetInt("players","Geld","ID",id);
s4=mysql_GetInt("players","Adminlevel","ID",id);
s1=mysql_GetString("players","Name","ID",id);
s2=mysql_GetString("players","Passwort","ID",id);
format(string,sizeof(string),"[Name: %s] [Passwort: %s] [Level: %s] [Adminlevel: %s] [Geld: %s]",s1,s2,s3,s4,s5);
SendClientMessage(playerid,gelb,string);
return 1;
}
stock mysql_GetInt(Table[], Field[], Where[], Is[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
new sqlint = mysql_fetch_int();
mysql_free_result();
return sqlint;
}
stock mysql_GetString(Table[], Field[], Where[], Is[])
{
new query[128], Get[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
//Errors
C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(375) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(375) : error 033: array must be indexed (variable "s3")C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(376) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(376) : error 033: array must be indexed (variable "s5")C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(377) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(377) : error 033: array must be indexed (variable "s4")C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(378) : error 035: argument type mismatch (argument 4)C:\Users\Kevin\Desktop\Sa-Mp 0.3x\gamemodes\nScript.pwn(379) : error 035: argument type mismatch (argument 4)Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
8 Errors.
Easy hingeklatscht
//Edit: Wegen 2 Bildschirmen wird das so komisch angezeigt
Das kann ich dir nicht beantworten.
Ich habe mich mit diesen Berechnungen nie auseinander gesetzt
Dann stell den Timer um?
//Edit: FAIL -.- Dann musst du auch anders berechnen.
Wenn du dem Spieler ne falsche SKin ID gibst, crashen auch alle, die in der Nähe des Spielers sind -.-
Mitdenken löst so manche Probleme
mfg
Das Script merkt erst sehr spät, dass er wieder HP hat, weil du es unter "OnPlayerUpdate" hast.
Wenn du einen Timer erstellen würdest, mit dem der Spieler die ganze Zeit abgefragt wird, würde es nicht so lange dauern.
Was lernen wir daraus? Genau! Wir erstellen einen SetTimerEx
Ich hoffe, ich konnte dir das noch einmal einleuten
Also: Um sicher zu gehen:
Du hast die Include im richtigen Ordner.
Du hast die Datei richtig eingebunden.
Und du hast die .pwn Datei mit dem Pawno geöffnet, wo die Include auch im Include Ordner ist.
Richtig?
Wenn du die Grundkenntnisse lernen würdest, wüsstest du, dass ein Race System sehr einfach ist.
Man erstellt mehrere Checkpoints in einer Datei, die dann abgerufen werden.
Das ganze kannst du natürlich Dynamisch machen.
Dann fügst du per Variable die neuen Spieler hinzu und startest das Rennen.
Dann brauchst du noch OnPlayerEnterCheckpoint.
Mehr ist das nicht.
Warum lässt du den Timer wiederholen?
Du brauchst ihn doch nur um die Tore wieder zu schließen.
Heißt, dass er trotzdem weiter macht, egal, wie oft du das Tor auf und zu machst.
mfg Pinguin
OMG!
Wo bleibt der Download Link ...
schick ihn mir sofort... ich muss es haben!
WTF! Gute Arbeit!
Ja, das hatte ich davor versucht
Kam ebenfalls das falsche bei raus
//Edit: Fail .... ich habe bei dem Enum vergessen Float hinzuzufügen ....
meine Intelligenz zeigt sich mal wieder ...
Heyho.
Schaut euch einmal den Code an und sagt mir, was an diesem Code falsch ist....
//Error Meldungen
C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(707) : warning 213: tag mismatch
C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(708) : warning 213: tag mismatch
C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(709) : warning 213: tag mismatch
C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(710) : warning 213: tag mismatch
C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(711) : warning 213: tag mismatch
C:\Users\Smith Fmily\Desktop\NewS\gamemodes\dmscript.pwn(712) : warning 213: tag mismatch
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
6 Warnings.
//Die angegebenen Zeilen
stock CreateOBS(Float:obxxx, Float:oby, Float:obz, Float:obXX, Float:obYY, Float:obZZ,id)
{
for(new i=1; i<MAX_OBS; i++)
{
new Obj[64];
format(Obj,64,"/Objecte/Objec.%d.ini",i);
if(!fexist(Obj))
{
dini_Create(Obj);
dini_IntSet(Obj,"PosX",obxxx);
dini_IntSet(Obj,"PosY",oby);
dini_IntSet(Obj,"PosZ",obz);
dini_IntSet(Obj,"PosXX",obXX);
dini_IntSet(Obj,"PosYY",obYY);
dini_IntSet(Obj,"PosZZ",obZZ);
dini_IntSet(Obj,"ObjectID",id);
return LoadOBS(i);
}
}
return 1;
}
ocmd:sound(playerid,params[])
{
new soundid;
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
if(sscanf(params,"d",soundid))return SendClientMessage(playerid,farbe,"/sound [ID]");
PlayerPlaySound(playerid,sound,x,y,z);
return 1;
}
@Raphael.K: Ja, ich weiß, dass es sehr Rescourcen fressend ist. Ich habe dort aber auch beschrieben, dass man es auch in einen Timer packen kann
(SetTimerEx) - Ich aber kein Tutorial dazu schreiben werde.
Ryan.Oconner: Jap Wenn die Leute C&P machen, ist es deren Pech! Daraus lernen sie nichts
Da Pawn bei 0 Anfängt zu zählen, musst du es so versuchen:
#define DIALOG_KAUFEN 1
ShowPlayerDialog(playerid,DIALOG_KAUFEN,DIALOG_STYLE_LIST,"Waffenkauf","Waffe 1\nWaffe 2\nWaffe 3","Kaufen","Abbrechen");
//OnDialogResponse
if(dialogid == DIALOG_KAUFEN)
{
if(listitem==0)//Waffe 1
{
GivePlayerWeapon....
}
if(listitem==1)//Waffe2
{
GivePlayerWeapon...
}
}
Versuch einfach mal diesen Code vollständig mit ein dein Script zu bekommen.