http://forum.sa-mp.com/showthread.php?t=397515
Hey ich habe das 1 ausprobiert aber es geht nicht wieso
http://forum.sa-mp.com/showthread.php?t=397515
Hey ich habe das 1 ausprobiert aber es geht nicht wieso
Ich suche die Animation, wie als wenn man reden würde. Sprich, wo sich die Arme der Person bewegen.
Ich suche die Animation, wie als wenn man reden würde. Sprich, wo sich die Arme der Person bewegen.
Einfach so:
ApplyAnimation(playerid,!"PED",!"IDLE_CHAT",4.0,0,0,0,0,0);
Wie kann man Booleans abspeichern ( Dini )?
dini_IntSet(pfad, "BoolWert", bVar);
Wenn das nicht geht, dann so:
dini_IntSet(pfad, "BoolWert", _:bVar);
Wobei bVar deine Boolean'sche Variable ist.
Aber es sollte beides gehen.
Unter meinem PlayerInfo Enum.
bool:pLeader
Unter meinem stock SavePlayerAccount. ( Davor )
dini_IntSet(spName,"Leader",pInfo[playerid][pLeader]);
Jetzt habe ich es so gemacht. ( Danach )
dini_IntSet(spName,"Leader",_:pInfo[playerid][pLeader]);
Dies funktioniert nicht.
Und diese Variante auch nicht, habe die ja zuvor benutzt.
dini_IntSet(pfad, "BoolWert", bVar);
Die Error Message
C:\Users\----\----\-----\gamemodes\denamed.pwn(2420) : warning 213: tag mismatch
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
Nimm einfach die Funktion dini_BoolSet und dini_Bool
So erstmal danke Jeffry und Mencent.
Aber jetzt bei LoadPlayerAccount bekomme ich ein tag mismatch
Weiß nicht wo der Fehler ist.
pInfo[playerid][pLeader] = dini_Bool(spName,"Leader");
Lösung:
pInfo[playerid][pLeader] = bool:dini_Bool(spName,"Leader");
@Mencent: malE:
dini_Int und dini_Bool sind genau gleich, es spielt keine Rolle welches man verwendet. Daher muss man (siehe Lösung) auch dini_Bool mit bool: casten.
stock dini_IntSet(filename[],key[],value) {
new valuestring[MAX_STRING];
format(valuestring,sizeof(valuestring),"%d",value);
return dini_Set(filename,key,valuestring);
}
stock dini_Int(filename[],key[]) {
return strval(dini_Get(filename,key));
}
stock dini_BoolSet(filename[],key[],value) {
new valuestring[MAX_STRING];
format(valuestring,sizeof(valuestring),"%d",value);
return dini_Set(filename,key,valuestring);
}
stock dini_Bool(filename[],key[]) {
return strval(dini_Get(filename,key));
}
Quelle: dini.inc
Eigentlich müsste dini_Bool so aussehen:
forward bool:dini_Bool(filename[],key[]);
stock bool:dini_Bool(filename[],key[]) {
return bool:strval(dini_Get(filename,key));
}
Das könntest du in der dini.inc ändern, dann sparst du dir das casten im eigentlichen Code, da das unschön ist.
Ok danke Jeffry für die Info.
Am stock dini_BoolSet muss man nichts ändern in der dini.inc.
Am stock dini_BoolSet muss man nichts ändern in der dini.inc.
Müssen nicht, aber es wäre sinnvoll das zu ändern, dann kannst du nämlich
pInfo[playerid][pLeader] = dini_Bool(spName,"Leader");
nutzen, ohne den Cast.
Hab ich schon parallel gemacht als ich die Dini.inc geändert hab.
Wie lässt man am besten einen Vehicle Teleporter detecten?
Wie lässt man am besten einen Vehicle Teleporter detecten?
Clans werden nicht geladen.
forward LoadClans();
public LoadClans()
{
new string[128];
for(new i = 0; i < MAX_CLANS; i++)
{
format(string, sizeof(string),"SELECT * FROM `Clans` WHERE `ID` = '%d'", i);
mysql_query(dbhandle,string);
mysql_store_result();
if(mysql_num_rows() != 0)
{
mysql_fetch_row(string);
Clan[i][cID] = cache_get_field_content_int(0,"ID",dbhandle);
cache_get_field_content(0, "name", Clan[i][cName], dbhandle, 32);
cache_get_field_content(0, "Leader", Clan[i][cLeader], dbhandle, 32);
Clan[i][cMitglieder] = cache_get_field_content_int(0,"Mitglieder",dbhandle);
Clan[i][cLevel] = cache_get_field_content_int(0,"level",dbhandle);
Clan[i][cGeld] = cache_get_field_content_int(0,"geld",dbhandle);
Clan[i][cEXP] = cache_get_field_content_int(0,"EXP",dbhandle);
Clan[i][cSiege] = cache_get_field_content_int(0,"Siege",dbhandle);
Clan[i][cNiederlagen] = cache_get_field_content_int(0,"Niederlagen",dbhandle);
Clan[i][cUnentschieden] = cache_get_field_content_int(0,"Unentschieden",dbhandle);
}
mysql_free_result();
printf("Clan ID: %i | Name: %s | Leader: %s | Mitglieder: %i | Level: %i | Geld: %i | EXP: %i | S: %i N: %i U: %i", Clan[i][cID], Clan[i][cName], Clan[i][cLeader], Clan[i][cMitglieder], Clan[i][cLevel],Clan[i][cGeld],
Clan[i][cEXP],Clan[i][cSiege],Clan[i][cNiederlagen],Clan[i][cUnentschieden]);
}
return 1;
}
Gibt mir 50 mal (MAX_CLANS) aus:
Connection etc ist hergestellt. SQL Version R34
Wenn man mit den Cache-Funktionen schon arbeitet, dann sollte man es komplett machen, sonst bringt es keinen Vorteil.
Nutze für das Query: http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_pquery
OnGameModeInit:
mysql_pquery(dbhandle, "SELET * FROM Clans;", "LoadClans", "");
Ganz unten im Code:
forward LoadClans();
public LoadClans()
{
new rows = cache_num_rows();
for(new i;i<rows;i++)
{
Clan[i][cID] = cache_get_field_content_int(i,"ID",dbhandle);
cache_get_field_content(i,"name",Clan[i][cName],dbhandle,32);
cache_get_field_content(i,"Leader",Clan[i][cLeader],dbhandle,32);
Clan[i][cMitglieder] = cache_get_field_content_int(i,"Mitglieder",dbhandle);
Clan[i][cLevel] = cache_get_field_content_int(i,"level",dbhandle);
Clan[i][cGeld] = cache_get_field_content_int(i,"geld",dbhandle);
Clan[i][cEXP] = cache_get_field_content_int(i,"EXP",dbhandle);
Clan[i][cSiege] = cache_get_field_content_int(i,"Siege",dbhandle);
Clan[i][cNiederlagen] = cache_get_field_content_int(i,"Niederlagen",dbhandle);
Clan[i][cUnentschieden] = cache_get_field_content_int(i,"Unentschieden",dbhandle);
printf("Clan ID: %i | Name: %s | Leader: %s | Mitglieder: %i | Level: %i | Geld: %i | EXP: %i | S: %i N: %i U: %i",Clan[i][cID], Clan[i][cName], Clan[i][cLeader], Clan[i][cMitglieder], Clan[i][cLevel],Clan[i][cGeld],
Clan[i][cEXP],Clan[i][cSiege],Clan[i][cNiederlagen],Clan[i][cUnentschieden]);
}
return 1;
}
@Mencent: Dein Code würde nicht funktionieren, da du in der Schleife das Result frei gibst, somit würde es maximal einen Clan laden.
Moin
Ich hänge momentan an dem Problem, dass ich ein Array mit einem enum definiert habe, dieses aber dennoch über die entsprechende Arraystelle aufrufen möchte. Nutze ich einen normalen Aufruf bekomme ich ein Warning "warning 213: tag mismatch"
Aufruf: FrakSettings[frak][6]
enum FrakOption
{
fName,
fKasse,
fMats,
fDrugs,
fMotd[128],
fRang1[24],
fRang2[24],
fRang3[24],
fRang4[24],
fRang5[24],
fRang6[24]
}
new FrakSettings[sizeof(Fraks)][FrakOption];
Was hast du denn vor zu machen?
PS: Damit nicht alles in einer Zeile steht, nutze den Reiter "Quellcode" über der Schriftart.
Ich habe vor die einzelnen Rangname auszulesen aus dem entsprechenden Array. Da ich aber über einen Dialog gehe wäre es mir etwas zu umständlich das ganze in ohne ende if Abfragen für jedes listitem zu hängen, daher suche ich nach einer besseren Lösung
Edit: In diese Richtung hatte ich dabei gedacht
new rank = listitem+5;
FrakSettings[frak][rank]