[ROZWIĄZANE] użycie callfunc
Jak się nazwać
26.01.2012
Siema mam pytanie dotyczące callfunc tzn chodzi czy dobrze rozumuję:
np:
czyli funkcja w pluginie ZapisSql ma wyglądać tak?
oraz czy w callfuncbegin do nazwy pluginu dodać .amxx?
np:
callfunc_begin("ZapiszDane", "ZapisSql.amxx")
callfunc_push_int(misja[id])
callfunc_push_int(postep[id])
callfunc_push_int(done[id])
callfunc_end()
czyli funkcja w pluginie ZapisSql ma wyglądać tak?
public ZapiszDane(misja, postep, done)
{
}
oraz czy w callfuncbegin do nazwy pluginu dodać .amxx?
DarkGL
26.01.2012
takczyli funkcja w pluginie ZapisSql ma wyglądać tak?
takoraz czy w callfuncbegin do nazwy pluginu dodać .amxx?
MarWit
26.01.2012
np:
callfunc_begin("ZapiszDane", "ZapisSql.amxx")
callfunc_push_int(misja[id])
callfunc_push_int(postep[id])
callfunc_push_int(done[id])
callfunc_end()
czyli funkcja w pluginie ZapisSql ma wyglądać tak?
public ZapiszDane(misja, postep, done)
{
}
Powinno być dobrze, chociaz ja bym zrobił to tak by plugin sie nie wysypał:
if(callfunc_begin("ZapiszDane", "ZapisSql.amxx") < 0)
return -1;
callfunc_push_int(misja[id])
callfunc_push_int(postep[id])
callfunc_push_int(done[id])
callfunc_end()
oraz czy w callfuncbegin do nazwy pluginu dodać .amxx?
Tak
Jak się nazwać
26.01.2012
ok dzięki. Ale teraz pytanie jak z wczytywaniem danych. tzn jak przypisać te dane do zmiennych z innego pluginu chodzi mi o takie coś że np kod zapisu dodaje te rekordy do sqlite a jak później je wyciągnąć (dodam że natywy nie wchodzą w grę, próbowałem też zwracać natywem z głównego pluginu uchwyt bazy danych ale nie działało)
tak wyglądał ten natyw
tak więc chodzi o takie coś mniej więcej
i do tych zmiennych przypisywałyby się wartości wczytane z sql
wczytywanie danych wygląda tak:
tak wyglądał ten natyw
public _sql_get_handle()
return _:g_SqlTuple
tak więc chodzi o takie coś mniej więcej
callfunc_begin("WczytajDane", "ZapisSql.amxx")
callfunc_push_int(misja[id])
callfunc_push_int(postep[id])
callfunc_push_int(done[id])
callfunc_end()
i do tych zmiennych przypisywałyby się wartości wczytane z sql
wczytywanie danych wygląda tak:
public WczytajMisje(id)
{
new Data[1]
Data[0] = id
formatex(gQuery, charsmax(gQuery), "SELECT * FROM `CodMisje` WHERE `nick` = ^"%s^"", nazwa_gracza[id])
SQL_ThreadQuery(gTuple, "WczytajMisjeHandler", gQuery, Data)
}
public WczytajMisjeHandler(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error)
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("Load Query failed. [%d] %s", Errcode, Error)
}
new id = Data[0]
if(SQL_NumResults(Query) < 1)
{
formatex(gQuery, charsmax(gQuery), "INSERT INTO `CodMisje` VALUES (^"%s^")", nazwa_gracza[id])
SQL_ThreadQuery(gTuple, "QueryHandleStandard", gQuery)
}
else
{
zadanie_gracza[id] = SQL_ReadResult(Query, 1)
postep[id][zadanie_gracza[id]] = SQL_ReadResult(Query, 2)
done[id] = SQL_ReadResult(Query, 3)
}
}
MarWit
26.01.2012
Int - callfunc_push_intrf
Float - callfunc_push_floatrf
String - callfunc_push_intrf z drugim argumentem ustawionym na true
Tablica - callfunc_push_array z trzecim argumentem ustawionym na true
callfunc_end - zwraca return funkcji
Float - callfunc_push_floatrf
String - callfunc_push_intrf z drugim argumentem ustawionym na true
Tablica - callfunc_push_array z trzecim argumentem ustawionym na true
callfunc_end - zwraca return funkcji
Jak się nazwać
26.01.2012
ok. zobaczę co mi wyjdzie jak co to edytuję posta@@ Ok next pytanie w sumie chcę się upewnić że jeżeli funkcja zwróci 0 to wywoła się task
ok tak to ma wyglądać?
1 plugin
2 plugin
Edited by Jak się nazwać, 26.01.2012 15:01.
if(!callfunc_end()) set_task(1.0, "WczytajMisje")
ok tak to ma wyglądać?
1 plugin
public WczytajMisje(id)
{
callfunc_begin("WczytajMisje", "QTM_CodMod.amxx")
callfunc_push_int(id)
callfunc_push_intrf(zadanie_gracza[id])
callfunc_push_intrf(postep[id][zadanie_gracza[id]])
callfunc_push_intrf(done[id])
if(!callfunc_end())
set_task(1.0, "WczytajMisje")
}
2 plugin
public WczytajMisje(id, misja, postep, done)
{
if(!zaladowal) return 0
misja = wczytana_misja[id]
postep = wczytany_postep[id]
done = wczytany_done[id]
return 1
}
Edited by Jak się nazwać, 26.01.2012 15:01.
Jak się nazwać
26.01.2012
Ok do zamknięcia jednak wolę kombinować z zwracaniem tuple natyvem (mniej kombinowania niż tu )
MarWit
26.01.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL